"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8911],{48107:function(e){e.exports=JSON.parse('{"contractName":"Liquidity","abi":[{"inputs":[{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"},{"internalType":"uint256","name":"_share","type":"uint256"},{"internalType":"address","name":"_vitta","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"platform","type":"address"},{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"address","name":"vitta","type":"address"},{"indexed":false,"internalType":"uint256","name":"prorataStake","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"InvestorReturns","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"LPToIssue","type":"uint256"}],"name":"IssuedVitta","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"platform","type":"address"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"distribution","type":"uint256"}],"name":"ManagerReturns","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"platform","type":"address"},{"indexed":false,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"uint256","name":"LPToken","type":"uint256"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"PlatformLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"platform","type":"address"},{"indexed":false,"internalType":"address","name":"manager","type":"address"}],"name":"PlatformManagers","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"platform","type":"address"},{"indexed":false,"internalType":"address","name":"vitta","type":"address"},{"indexed":false,"internalType":"uint256","name":"distribution","type":"uint256"}],"name":"PlatformReturns","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"platform","type":"address"},{"indexed":false,"internalType":"bytes32","name":"platformName","type":"bytes32"}],"name":"RegisterPlatform","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"RequestIssue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RequestRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"string","name":"tokenName","type":"string"}],"name":"SupportToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive","payable":true},{"inputs":[{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"createSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"string","name":"_name","type":"string"}],"name":"supportTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"checkSupportForToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[],"name":"getSupportedTokens","outputs":[{"components":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"address","name":"tokenAddress","type":"address"}],"internalType":"struct ILiquidity.token[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityPlatform","type":"address"},{"internalType":"bytes32","name":"_platformName","type":"bytes32"}],"name":"registerPlatform","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPlatforms","outputs":[{"components":[{"internalType":"bytes32","name":"platformName","type":"bytes32"},{"internalType":"address","name":"platformAddress","type":"address"}],"internalType":"struct ILiquidity.platform[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"address","name":"_platform","type":"address"},{"internalType":"address","name":"_manager","type":"address"}],"name":"addManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_platform","type":"address"},{"internalType":"address","name":"_manager","type":"address"}],"name":"removeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_platform","type":"address"}],"name":"getManagers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getInvestors","outputs":[{"components":[{"internalType":"string","name":"assetInvested","type":"string"},{"internalType":"address","name":"investorAddress","type":"address"}],"internalType":"struct ILiquidity.provider[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"address","name":"_investor","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"getInvestment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"address","name":"_investor","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"},{"internalType":"uint256","name":"_LPToIssue","type":"uint256"}],"name":"issue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_platform","type":"address"},{"internalType":"address","name":"_manager","type":"address"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"provideLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_distribution","type":"uint256"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_manager","type":"address"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_platform","type":"address"}],"name":"getPlatformPerformance","outputs":[{"internalType":"uint256","name":"platformLiquidityProvided","type":"uint256"},{"internalType":"uint256","name":"platformCommissionsEarned","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"address","name":"_platform","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_manager","type":"address"}],"name":"getManagerPerformance","outputs":[{"internalType":"uint256","name":"managerLiquidityProvided","type":"uint256"},{"internalType":"uint256","name":"managerCommissionsEarned","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"uint256","name":"_distribution","type":"uint256"},{"internalType":"address","name":"_platform","type":"address"}],"name":"payOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"balance","outputs":[{"internalType":"uint256","name":"investorBalance","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oracle","type":"address"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setExchangeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasurer","type":"address"}],"name":"setTreasurer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_share","type":"uint256"}],"name":"setLiquidityShare","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\\"compiler\\":{\\"version\\":\\"0.8.0+commit.c7dfd78e\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_cap\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_limit\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_share\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_vitta\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"constructor\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"platform\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"investor\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"vitta\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"prorataStake\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"timestamp\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"InvestorReturns\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"investor\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"token\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"tokenAmount\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"LPToIssue\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"IssuedVitta\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"platform\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"manager\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"token\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"distribution\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"ManagerReturns\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"previousOwner\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"newOwner\\",\\"type\\":\\"address\\"}],\\"name\\":\\"OwnershipTransferred\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"account\\",\\"type\\":\\"address\\"}],\\"name\\":\\"Paused\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"platform\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"manager\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"LPToken\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"token\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"tokenAmount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"PlatformLiquidity\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"platform\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"manager\\",\\"type\\":\\"address\\"}],\\"name\\":\\"PlatformManagers\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"platform\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"vitta\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"distribution\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"PlatformReturns\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"platform\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes32\\",\\"name\\":\\"platformName\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"RegisterPlatform\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"investor\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"token\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"tokenAmount\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"timestamp\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"RequestIssue\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"token\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"RequestRate\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"token\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"string\\",\\"name\\":\\"tokenName\\",\\"type\\":\\"string\\"}],\\"name\\":\\"SupportToken\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"account\\",\\"type\\":\\"address\\"}],\\"name\\":\\"Unpaused\\",\\"type\\":\\"event\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_platform\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_manager\\",\\"type\\":\\"address\\"}],\\"name\\":\\"addManager\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"investor\\",\\"type\\":\\"address\\"}],\\"name\\":\\"balance\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"investorBalance\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"buy\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"}],\\"name\\":\\"checkSupportForToken\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_cap\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_limit\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"createSupply\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_distribution\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_manager\\",\\"type\\":\\"address\\"}],\\"name\\":\\"distribute\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_investor\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"}],\\"name\\":\\"getInvestment\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"getInvestors\\",\\"outputs\\":[{\\"components\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"assetInvested\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"investorAddress\\",\\"type\\":\\"address\\"}],\\"internalType\\":\\"struct ILiquidity.provider[]\\",\\"name\\":\\"\\",\\"type\\":\\"tuple[]\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_platform\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_manager\\",\\"type\\":\\"address\\"}],\\"name\\":\\"getManagerPerformance\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"managerLiquidityProvided\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"managerCommissionsEarned\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_platform\\",\\"type\\":\\"address\\"}],\\"name\\":\\"getManagers\\",\\"outputs\\":[{\\"internalType\\":\\"address[]\\",\\"name\\":\\"\\",\\"type\\":\\"address[]\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_platform\\",\\"type\\":\\"address\\"}],\\"name\\":\\"getPlatformPerformance\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"platformLiquidityProvided\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"platformCommissionsEarned\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"getPlatforms\\",\\"outputs\\":[{\\"components\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"platformName\\",\\"type\\":\\"bytes32\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"platformAddress\\",\\"type\\":\\"address\\"}],\\"internalType\\":\\"struct ILiquidity.platform[]\\",\\"name\\":\\"\\",\\"type\\":\\"tuple[]\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"getSupportedTokens\\",\\"outputs\\":[{\\"components\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"tokenName\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"tokenAddress\\",\\"type\\":\\"address\\"}],\\"internalType\\":\\"struct ILiquidity.token[]\\",\\"name\\":\\"\\",\\"type\\":\\"tuple[]\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_investor\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenAmount\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_LPToIssue\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"issue\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"owner\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"pause\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"paused\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_distribution\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_platform\\",\\"type\\":\\"address\\"}],\\"name\\":\\"payOut\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_platform\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_manager\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_liquidity\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenAmount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"provideLiquidity\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_liquidityPlatform\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"_platformName\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"registerPlatform\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_platform\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_manager\\",\\"type\\":\\"address\\"}],\\"name\\":\\"removeManager\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"}],\\"name\\":\\"removeToken\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"renounceOwnership\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"token\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"rate\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"setExchangeRate\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_share\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"setLiquidityShare\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_oracle\\",\\"type\\":\\"address\\"}],\\"name\\":\\"setOracle\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_treasurer\\",\\"type\\":\\"address\\"}],\\"name\\":\\"setTreasurer\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_token\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_name\\",\\"type\\":\\"string\\"}],\\"name\\":\\"supportTokens\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"sender\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"recipient\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"transfer\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"newOwner\\",\\"type\\":\\"address\\"}],\\"name\\":\\"transferOwnership\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"unpause\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"stateMutability\\":\\"payable\\",\\"type\\":\\"receive\\"}],\\"devdoc\\":{\\"kind\\":\\"dev\\",\\"methods\\":{\\"addManager(address,address)\\":{\\"params\\":{\\"_manager\\":\\"address of asset manager\\",\\"_platform\\":\\"address of market making platform (eg, Balancer)\\"}},\\"buy(address,uint256)\\":{\\"params\\":{\\"_amount\\":\\"amount of token that is transferred from investor to this VITTA issuing contract\'s account for the investor\\",\\"_token\\":\\"address of token used by investor to buy the VITTA\\"}},\\"checkSupportForToken(address)\\":{\\"params\\":{\\"_token\\":\\"token that is supported for investment\\"}},\\"constructor\\":{\\"params\\":{\\"_cap\\":\\"investment limit for each investor\\",\\"_limit\\":\\"time limit for issue close\\",\\"_vitta\\":\\"address of Verified liquidity token\\"}},\\"createSupply(uint256,uint256)\\":{\\"params\\":{\\"_cap\\":\\"investment limit for each investor\\",\\"_limit\\":\\"time limit for issue close \\"}},\\"distribute(uint256,address,address)\\":{\\"params\\":{\\"_distribution\\":\\"amount of VITTA to mint and distribute pro rata to liquidity providers\\",\\"_manager\\":\\"address of asset manager earning the paid out return on investment \\",\\"_token\\":\\"address of token in which distribution is made by market maker    \\"}},\\"getInvestment(address,address)\\":{\\"params\\":{\\"_investor\\":\\"address of investor\\",\\"_token\\":\\"address of token invested by investor\\"}},\\"getManagerPerformance(address,address,address)\\":{\\"params\\":{\\"_manager\\":\\"address of asset manager on platform\\",\\"_platform\\":\\"address of platform\\",\\"_token\\":\\"address of token\\"}},\\"getManagers(address)\\":{\\"params\\":{\\"_platform\\":\\"address of market making platform\\"}},\\"getPlatformPerformance(address)\\":{\\"params\\":{\\"_platform\\":\\"address of market making platform\\"}},\\"issue(address,address,uint256,uint256)\\":{\\"params\\":{\\"_LPToIssue\\":\\"amount of VITTA to issue to investor \\",\\"_investor\\":\\"address of investor\\",\\"_token\\":\\"address of token invested in VITTA\\",\\"_tokenAmount\\":\\"amount of token invested in VITTA\\"}},\\"owner()\\":{\\"details\\":\\"Returns the address of the current owner.\\"},\\"paused()\\":{\\"details\\":\\"Returns true if the contract is paused, and false otherwise.\\"},\\"payOut(uint256,address)\\":{\\"params\\":{\\"_distribution\\":\\"amount of VITTA to mint and distribute pro rata to liquidity providers   \\",\\"_platform\\":\\"address of platform on which commission is earned based on which distribution is made\\"}},\\"provideLiquidity(address,address,uint256,address,uint256)\\":{\\"params\\":{\\"_liquidity\\":\\"amount of VITTA tokens to allot to an asset manager\\",\\"_manager\\":\\"address of asset manager to whom liquidity has to be provided\\",\\"_platform\\":\\"address of platform on which liquidity has to be provided\\",\\"_token\\":\\"address of token allotted to asset manager\\",\\"_tokenAmount\\":\\"amount of token allotted to asset manager\\"}},\\"registerPlatform(address,bytes32)\\":{\\"params\\":{\\"_liquidityPlatform\\":\\"address of the market making platform\\",\\"_platformName\\":\\"name of market making platform\\"}},\\"removeManager(address,address)\\":{\\"params\\":{\\"_manager\\":\\"address of asset manager\\",\\"_platform\\":\\"address of market making platform\\"}},\\"renounceOwnership()\\":{\\"details\\":\\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\\"},\\"supportTokens(address,string)\\":{\\"params\\":{\\"_name\\":\\"name of token supported\\",\\"_token\\":\\"address of token supported\\"}},\\"transfer(address,address,uint256)\\":{\\"params\\":{\\"amount\\":\\"amount of vitta transferred\\",\\"recipient\\":\\"transferee of vitta\\",\\"sender\\":\\"transferor of Vitta\\"}},\\"transferOwnership(address)\\":{\\"details\\":\\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\\"}},\\"version\\":1},\\"userdoc\\":{\\"kind\\":\\"user\\",\\"methods\\":{\\"addManager(address,address)\\":{\\"notice\\":\\"Adds asset manager for managing liquidity\\"},\\"buy(address,uint256)\\":{\\"notice\\":\\"Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \\"},\\"checkSupportForToken(address)\\":{\\"notice\\":\\"Checks if a specified token is supported for investing in the Verified Liquidity token\\"},\\"constructor\\":{\\"notice\\":\\"Constructor for the Verified Liquidity manager\\"},\\"createSupply(uint256,uint256)\\":{\\"notice\\":\\"Updates investment and time limits for Verified Liquidity token after initial issue with constructor defined parameters\\"},\\"distribute(uint256,address,address)\\":{\\"notice\\":\\"Pay out of income by Market maker contracts to VITTA Liquidity providers\\"},\\"getInvestment(address,address)\\":{\\"notice\\":\\"Fetches investment detail for specific investor in VITTA\\"},\\"getInvestors()\\":{\\"notice\\":\\"Fetches investors in VITTA\\"},\\"getManagerPerformance(address,address,address)\\":{\\"notice\\":\\"Fetches performance of asset managers\\"},\\"getManagers(address)\\":{\\"notice\\":\\"Gets asset managers for managing liquidity\\"},\\"getPlatformPerformance(address)\\":{\\"notice\\":\\"Fetches performance of market platform platform\\"},\\"getPlatforms()\\":{\\"notice\\":\\"Gets list of registered platforms\\"},\\"getSupportedTokens()\\":{\\"notice\\":\\"Returns list of supported tokens\\"},\\"issue(address,address,uint256,uint256)\\":{\\"notice\\":\\"Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\\"},\\"pause()\\":{\\"notice\\":\\"Pauses this contract\\"},\\"payOut(uint256,address)\\":{\\"notice\\":\\"Pay out income to VITTA Liquidity providers\\"},\\"provideLiquidity(address,address,uint256,address,uint256)\\":{\\"notice\\":\\"Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \\"},\\"registerPlatform(address,bytes32)\\":{\\"notice\\":\\"Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\\"},\\"removeManager(address,address)\\":{\\"notice\\":\\"Removes asset manager for managing liquidity on platform\\"},\\"removeToken(address)\\":{\\"notice\\":\\"Removes a supported token\\"},\\"supportTokens(address,string)\\":{\\"notice\\":\\"Specifies list of supported tokens that can be invested in the Verified Liquidity token\\"},\\"transfer(address,address,uint256)\\":{\\"notice\\":\\"Adjust stakes for every transfer of Vitta\\"},\\"unpause()\\":{\\"notice\\":\\"Unpauses this contract\\"}},\\"version\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"project:/contracts/Liquidity.sol\\":\\"Liquidity\\"},\\"evmVersion\\":\\"istanbul\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"ipfs\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":200},\\"remappings\\":[]},\\"sources\\":{\\"@openzeppelin/contracts/access/Ownable.sol\\":{\\"keccak256\\":\\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\\",\\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\\"]},\\"@openzeppelin/contracts/security/Pausable.sol\\":{\\"keccak256\\":\\"0xa35b1f2a670cd2a701a52c398032c9fed72df1909fe394d77ceacbf074e8937b\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://72b957861691ebdaa78c52834465c4f8296480fe4f1a12ba72dc6c0c8ac076dd\\",\\"dweb:/ipfs/QmVz1sHCwgEivHPRDswdt9tdvky7EnWqFmbuk1wFE55VMG\\"]},\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\":{\\"keccak256\\":\\"0xf0a4351c95ac31eff95e701b66558a49f9893c4af30eead285db0eb8ee277b6d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://e5a06c1bf98b9de02e2aaed77936ed5cf5fbf4c6f3decbd82a7b7de3608914d3\\",\\"dweb:/ipfs/QmTJuQxe5NBpCvqzp2HsZyzEwm7hvmjanczvhGZM9tSoVU\\"]},\\"@openzeppelin/contracts/token/ERC20/IERC20.sol\\":{\\"keccak256\\":\\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\\",\\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\\"]},\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\":{\\"keccak256\\":\\"0x83fe24f5c04a56091e50f4a345ff504c8bff658a76d4c43b16878c8f940c53b2\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://d4c3df1a7ca104b633a7d81c6c6f5192367d150cd5a32cba81f7f27012729013\\",\\"dweb:/ipfs/QmSim72e3ZVsfgZt8UceCvbiSuMRHR6WDsiamqNzZahGSY\\"]},\\"@openzeppelin/contracts/utils/Context.sol\\":{\\"keccak256\\":\\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\\",\\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\\"]},\\"@openzeppelin/contracts/utils/math/SafeMath.sol\\":{\\"keccak256\\":\\"0x8666f020bd8fc9dc14f07e2ebc52b5f236ab4cdde7c77679b08cb2f94730043b\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://163776cbf565c722232393aa2d62cbe8a2ffb5805986abf4906c00e1e07450a6\\",\\"dweb:/ipfs/QmPZoN9T3cb6o8bGhjBPZcz7im8T8DWhpr3tjLwhJJHx9N\\"]},\\"project:/contracts/Liquidity.sol\\":{\\"keccak256\\":\\"0xf3ed421960e2e89572e1b6111b5419822ad2b9feb26aeb6f5d2a5747eefa39fb\\",\\"license\\":\\"UNLICENSED\\",\\"urls\\":[\\"bzz-raw://8b2d6242dc2a4cd4426ceb63e92a989ad90465801c8ae78a6b3745a48af4575d\\",\\"dweb:/ipfs/QmQmW1rhKB1JsPRpriFkEStrRTAGi4jp9jLUtNXnW73f9C\\"]},\\"project:/contracts/interfaces/ILiquidity.sol\\":{\\"keccak256\\":\\"0xa34e454d47afa14b8d537124e945b6341f6e615fb836a8d00e722d54fa96be6d\\",\\"license\\":\\"UNLICENSED\\",\\"urls\\":[\\"bzz-raw://570d162467c01de8f34e8f26dbcecd8326dfbeb6737afe54c090199b0786f1d4\\",\\"dweb:/ipfs/QmbrmQ2WRUTePmM9YSJgDTvAvpUbNQN3c2gJefLQ5Ymbcd\\"]},\\"project:/contracts/interfaces/IMarketMaker.sol\\":{\\"keccak256\\":\\"0x4201d9f91e7e091c7868982c7799c4f9cdf682d1535144fcef151458883bc4d4\\",\\"license\\":\\"UNLICENSED\\",\\"urls\\":[\\"bzz-raw://4b51f5a566cd512b8f2674d9923ca2bd203b3c7585796946eaa2e1bd9670e199\\",\\"dweb:/ipfs/QmWMWdbBCBhzRvaJxAMdgo2isa4upeqbRzqWf5hHeDjfuU\\"]},\\"project:/contracts/interfaces/IVitta.sol\\":{\\"keccak256\\":\\"0xbb98537cef1a63ee46545cb512f1ca49fb8ffaf4cd41aa903595129407c8d97d\\",\\"license\\":\\"UNLICENSED\\",\\"urls\\":[\\"bzz-raw://080f7a61b4672532bedb9f35d710cac4da06539ad2acf2030e80a6ff53673b59\\",\\"dweb:/ipfs/QmbyiS59KbP7DgEh3wspLkDoSr15yvbbWhcycSYWTTmjLi\\"]},\\"project:/contracts/math/BalancerErrors.sol\\":{\\"keccak256\\":\\"0x323bea2f11674b9268713f7297620af5a2ccf7de1d0c6a3f2ab60d4146097994\\",\\"license\\":\\"GPL-3.0-or-later\\",\\"urls\\":[\\"bzz-raw://764b0c48b21e6d2fb54ada64e28253cde73e4dbce7aa8b68e5642f4038b5cac7\\",\\"dweb:/ipfs/QmNomHLxAk3PJ9LDxLscuziFW2hZRdy6YvrpNXE2zPYicp\\"]},\\"project:/contracts/math/FixedPoint.sol\\":{\\"keccak256\\":\\"0xfeee385aff59fa8ccdd570da51dad7bea9568af3293224b7a91006f122418de5\\",\\"license\\":\\"GPL-3.0-or-later\\",\\"urls\\":[\\"bzz-raw://500a8e4acfcdf37b534af520c42d45bcdd8af085c94e0a30b2b1f16909f03c05\\",\\"dweb:/ipfs/QmXSdE2kdThLDghjMgBxJNvnNbjq71AZYSSjdCU14GmBPh\\"]},\\"project:/contracts/math/LogExpMath.sol\\":{\\"keccak256\\":\\"0xe92008e018fcea6e38735bfa99877a9baadd50f8c735e896626c4f75deea37c6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://90cd376656246dd6e66fafad22936a0bca1a2bed07cf4f2740747b692f2eeeca\\",\\"dweb:/ipfs/Qmeui9mWac4fbGi38HPP9Uu4BvJP3kbwNXSiDqSvxx8Xbs\\"]},\\"project:/contracts/math/Math.sol\\":{\\"keccak256\\":\\"0xc98ceae3785da1fa180f96f6dc2d4a73c643dbd2076aef8e4c56ea087e1b87fb\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://edc507569a43010e0d02990c05adb3c7c1060139a15f66075d566420ac60d0bb\\",\\"dweb:/ipfs/QmVxwu3xuTdMqkoCStr7H5JMMfzsAu8vrz8moRmZawHhWK\\"]}},\\"version\\":1}","bytecode":"0x60806040526000600755600060085560006009553480156200002057600080fd5b506040516200487238038062004872833981016040819052620000439162000129565b6200005762000051620000c6565b620000ca565b6000805460ff60a01b1916815560078590556008849055600955600c829055600a80546001600160a01b0319166001600160a01b0383161790556200009b6200011a565b600b80546001600160a01b0319166001600160a01b0392909216919091179055506200017892505050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031690565b600080600080608085870312156200013f578384fd5b845160208601516040870151606088015192965090945092506001600160a01b03811681146200016d578182fd5b939692955090935050565b6146ea80620001886000396000f3fe6080604052600436106101dc5760003560e01c80638456cb5911610102578063ccc241c611610095578063e4afbc6b11610064578063e4afbc6b14610927578063f2fde38b14610947578063f81f3ee714610967578063f85771b214610987576105a6565b8063ccc241c6146108a5578063cce7ec13146108c5578063d3c7c2c7146108e5578063e3d670d714610907576105a6565b8063bd5c5420116100d1578063bd5c542014610818578063beabacc814610838578063cac7495c14610858578063cb7c4c5514610885576105a6565b80638456cb591461079f5780638513c619146107b45780638da5cb5b146107d4578063b2f5a54c146107f6576105a6565b806356abb19b1161017a5780636260f1d8116101495780636260f1d81461072a578063671d64291461074a578063715018a61461076a5780637adbf9731461077f576105a6565b806356abb19b146106a85780635c975abb146106c85780635d4f5b1c146106ea5780635fa7b5841461070a576105a6565b806333060226116101b657806333060226146106265780633f4ba83a14610653578063451353f1146106685780634ea14cab14610688576105a6565b806305061616146105ab5780631fbe552e146105cd57806324ef84ec146105f8576105a6565b366105a657600854156102135742600854116102135760405162461bcd60e51b815260040161020a90614330565b60405180910390fd5b346102305760405162461bcd60e51b815260040161020a90614275565b6102386109a7565b156102555760405162461bcd60e51b815260040161020a906141b2565b6b195d1a195c9c9958d95a5c1d60a21b60005260166020527fb3b8c7d2c1b102ad55c0edb99b20386f39cf054abae56169c4cbb4ae61d09c245460ff16156102af5760405162461bcd60e51b815260040161020a9061439e565b7fb3b8c7d2c1b102ad55c0edb99b20386f39cf054abae56169c4cbb4ae61d09c24805460ff19166001179055336000908152600d6020908152604080832083805290915290205461039e576040805160808101825260059181018281526432ba3432b960d91b60608301528152336020808301919091528254600181018455600093909352815180519293849360029091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00192610372928492910190613941565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b3360009081526014602052604090205461040457600680546001810182557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b031916339081179091559054600091825260146020526040909120555b336000908152600d6020908152604080832083805290915290205461042990346109b7565b336000818152600d6020908152604080832083805290915280822093909355915190917f6caa883d8010fcd771ad0a52289f7940b3e91e5579cf0dd96ae1774e6d25cffa9161047c919034904290613ee5565b60405180910390a26000805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c541561056357600080805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c5461050091339134906104f39082906109cc565b6104fb610a14565b610a23565b600080805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c546040517ffe1ed69b3efd6d71f3708d26a6e1ce738b7233ef728bc42c2687cad399ccf7d39161055a91614069565b60405180910390a25b6b195d1a195c9c9958d95a5c1d60a21b60005260166020527fb3b8c7d2c1b102ad55c0edb99b20386f39cf054abae56169c4cbb4ae61d09c24805460ff19169055005b600080fd5b3480156105b757600080fd5b506105cb6105c6366004613d84565b610f64565b005b3480156105d957600080fd5b506105e26113d7565b6040516105ef9190613f53565b60405180910390f35b34801561060457600080fd5b50610618610613366004613aa8565b61144c565b6040516105ef929190614424565b34801561063257600080fd5b50610646610641366004613aa8565b6114b3565b6040516105ef9190613f06565b34801561065f57600080fd5b506105cb611569565b34801561067457600080fd5b506105cb610683366004613da6565b6115b2565b34801561069457600080fd5b506105cb6106a3366004613c2f565b6117e6565b3480156106b457600080fd5b506106186106c3366004613af4565b61192c565b3480156106d457600080fd5b506106dd6109a7565b6040516105ef919061405e565b3480156106f657600080fd5b506106dd610705366004613aa8565b6119c1565b34801561071657600080fd5b506105cb610725366004613aa8565b6119ef565b34801561073657600080fd5b506105cb610745366004613d54565b611e95565b34801561075657600080fd5b506105cb610765366004613aa8565b611ec7565b34801561077657600080fd5b506105cb611f16565b34801561078b57600080fd5b506105cb61079a366004613aa8565b611f5f565b3480156107ab57600080fd5b506105cb611fc0565b3480156107c057600080fd5b506105cb6107cf366004613ac2565b612007565b3480156107e057600080fd5b506107e9610a14565b6040516105ef9190613e6a565b34801561080257600080fd5b5061080b612104565b6040516105ef9190613fab565b34801561082457600080fd5b506105cb610833366004613c06565b61223e565b34801561084457600080fd5b506105cb610853366004613b36565b6122a9565b34801561086457600080fd5b50610878610873366004613ac2565b612387565b6040516105ef9190614069565b34801561089157600080fd5b506105cb6108a0366004613b71565b6123f4565b3480156108b157600080fd5b506105cb6108c0366004613bc5565b6127a6565b3480156108d157600080fd5b506105cb6108e0366004613c06565b6127f2565b3480156108f157600080fd5b506108fa612c8f565b6040516105ef919061400b565b34801561091357600080fd5b50610878610922366004613aa8565b612d8a565b34801561093357600080fd5b506105cb610942366004613dca565b612e0b565b34801561095357600080fd5b506105cb610962366004613aa8565b612e55565b34801561097357600080fd5b506105cb610982366004613c06565b612ec6565b34801561099357600080fd5b506105cb6109a2366004613ac2565b612ffc565b600054600160a01b900460ff1690565b60006109c38284614484565b90505b92915050565b6000806109d983856145d0565b90506109fa8415806109f35750836109f1868461449c565b145b6003613565565b610a0c670de0b6b3a76400008261449c565b949350505050565b6000546001600160a01b031690565b64697373756560d81b60005260166020527f4b98a68c0e9a4222d5629a7c41cbb37cf7e565aa176f51e8e1fdb860de97a7eb5460ff1615610a765760405162461bcd60e51b815260040161020a90614122565b7f4b98a68c0e9a4222d5629a7c41cbb37cf7e565aa176f51e8e1fdb860de97a7eb805460ff191660011790556001600160a01b038086166000908152600d6020908152604080832093881683529290522054610ad29084613573565b6001600160a01b038087166000908152600d6020908152604080832093891683529290522055600754821180610b8c5750600a54604080516318160ddd60e01b81529051610b89926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610b4957600080fd5b505afa158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b819190613d6c565b600954613573565b82115b15610ca7576001600160a01b038581166000908152600d6020908152604080832088851684529091529020600101541615610c6a576001600160a01b038086166000908152600d6020908152604080832088851684529091529081902060010154905163a9059cbb60e01b815291169063a9059cbb90610c129088908790600401613ea2565b602060405180830381600087803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c649190613cba565b50610ca2565b6040516001600160a01b0386169084156108fc029085906000818181858888f19350505050158015610ca0573d6000803e3d6000fd5b505b610f23565b600a546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610cdb90849089908790600401613e7e565b602060405180830381600087803b158015610cf557600080fd5b505af1158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d9190613cba565b50610d3a600954836109b7565b6009556001600160a01b0385166000908152600e6020526040902054610d6090836109b7565b6001600160a01b038087166000818152600e6020908152604080832095909555600d81528482208985168352905283902060010154925190927f3ed92bcd8133ac027f02bc9c77f471ab91c233a24bc157dd38ba2affabe5578392610dcb9291169087908790613ee5565b60405180910390a26001600160a01b038581166000908152600d6020908152604080832088851684529091529020600101541615610ed8576001600160a01b038086166000908152600d602090815260408083208885168452909152902060010154600b549082169163a9059cbb9116610e69610e5b610e5388610e4e8b61357f565b613624565b600c546109cc565b610e648961357f565b613630565b6040518363ffffffff1660e01b8152600401610e86929190613ea2565b602060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca09190613cba565b600b54600c546001600160a01b03909116906108fc90610ef99086906109cc565b6040518115909202916000818181858888f19350505050158015610f21573d6000803e3d6000fd5b505b505064697373756560d81b60005250506016602052507f4b98a68c0e9a4222d5629a7c41cbb37cf7e565aa176f51e8e1fdb860de97a7eb805460ff19169055565b610f6c61363c565b6001600160a01b0316610f7d610a14565b6001600160a01b031614610fa35760405162461bcd60e51b815260040161020a90614240565b651c185e5bdd5d60d21b60005260166020527f7444e57a0ca2660bc207c9b0be3e2ebc380f4993ebcd3576ea4772060960ec465460ff1615610ff75760405162461bcd60e51b815260040161020a90614122565b651c185e5bdd5d60d21b60005260166020527f7444e57a0ca2660bc207c9b0be3e2ebc380f4993ebcd3576ea4772060960ec46805460ff19166001179055600a546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906110679030908690600401613ea2565b600060405180830381600087803b15801561108157600080fd5b505af1158015611095573d6000803e3d6000fd5b5050506001600160a01b0382166000908152601260205260409020600101546110bf9150836109b7565b6001600160a01b038083166000818152601260205260409081902060010193909355600a54925190927f80974c5e383db0ffd4e95148f9ead5f8ba4bdec21852d45c6835a85270f974b792611118929116908690613ea2565b60405180910390a260065460095460005b8281101561139557600061118f611189600e60006006868154811061115e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205485613640565b876109cc565b600a54600680549293506001600160a01b039091169163a9059cbb9190859081106111ca57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160e01b031960e084901b168152611202916001600160a01b0316908590600401613ea2565b602060405180830381600087803b15801561121c57600080fd5b505af1158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190613cba565b506006828154811061127657634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600a546040516001600160a01b0392831692888116927faff7dc23e73108bdcc5d448247830289c3f256cc40d0549a07288163db4a42db926112cb929091169086904290613ee5565b60405180910390a36112df600954826109b7565b600981905550611338600e60006006858154811061130d57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054826109b7565b600e60006006858154811061135d57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902055508061138d8161466d565b915050611129565b5050651c185e5bdd5d60d21b60005250506016602052507f7444e57a0ca2660bc207c9b0be3e2ebc380f4993ebcd3576ea4772060960ec46805460ff19169055565b60606001805480602002602001604051908101604052809291908181526020016000905b828210156114435760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b03168284015290835290920191016113fb565b50505050905090565b60008061145761363c565b6001600160a01b0316611468610a14565b6001600160a01b03161461148e5760405162461bcd60e51b815260040161020a90614240565b50506001600160a01b0316600090815260126020526040902080546001909101549091565b60606114bd61363c565b6001600160a01b03166114ce610a14565b6001600160a01b0316146114f45760405162461bcd60e51b815260040161020a90614240565b6001600160a01b0382166000908152600f60209081526040918290208054835181840281018401909452808452909183018282801561155c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161153e575b505050505090505b919050565b61157161363c565b6001600160a01b0316611582610a14565b6001600160a01b0316146115a85760405162461bcd60e51b815260040161020a90614240565b6115b06136a2565b565b336000908152600260205260409020546115de5760405162461bcd60e51b815260040161020a906142f9565b6001600160a01b0382166000908152600460205260409020546116135760405162461bcd60e51b815260040161020a90614159565b61161b6109a7565b156116385760405162461bcd60e51b815260040161020a906141b2565b696469737472696275746560b01b60005260166020527fb0b635b44c76df09d65d311ff1b4470edb9a69f5367035a3232b0d5a11405ee95460ff16156116905760405162461bcd60e51b815260040161020a90614367565b7fb0b635b44c76df09d65d311ff1b4470edb9a69f5367035a3232b0d5a11405ee9805460ff191660011790553360009081526010602090815260408083206001600160a01b0385168452909152902054600954158015906116f057508015155b156117a1573360009081526011602090815260408083206001600160a01b0387168452825280832084845290915290206001015461172e90856109b7565b3360008181526011602090815260408083206001600160a01b038981168552908352818420878552909252918290206001019390935551918416917fdff48603d759a1933637840c945468e0b9fd413b5101770cafd01d93d60b5ade906117989087908990613ea2565b60405180910390a35b5050696469737472696275746560b01b600052505060166020527fb0b635b44c76df09d65d311ff1b4470edb9a69f5367035a3232b0d5a11405ee9805460ff19169055565b6117ee61363c565b6001600160a01b03166117ff610a14565b6001600160a01b0316146118255760405162461bcd60e51b815260040161020a90614240565b6001600160a01b03821660009081526004602052604090205461192857604080518082019091528181526001600160a01b0383166020808301919091526003805460018101825560009190915282518051849360029093027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01926118ae928492910190613941565b5060209182015160019190910180546001600160a01b0319166001600160a01b03928316179055600354908516600081815260049093526040928390209190915590517f10f1836bf661ec2d6e439744a2c220af8cd27522822842b304e2f5e00aea47b49061191e908590614072565b60405180910390a2505b5050565b60008061193761363c565b6001600160a01b0316611948610a14565b6001600160a01b03161461196e5760405162461bcd60e51b815260040161020a90614240565b50506001600160a01b039283166000818152601060209081526040808320948716835293815283822054928252601181528382209490951681529284528183209083529092522080546001909101549091565b6001600160a01b038116600090815260046020526040812054156119e757506001611564565b506000611564565b6119f761363c565b6001600160a01b0316611a08610a14565b6001600160a01b031614611a2e5760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038116600090815260046020526040812054156119285760035460005b81811015611e8f57836001600160a01b031660038281548110611a8557634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546001600160a01b03161415611c9457600354611ab7906001906145ef565b811415611b295760038181548110611adf57634e487b7160e01b600052603260045260246000fd5b60009182526020822060029091020190611af982826139c5565b5060010180546001600160a01b03191690556001600160a01b038416600090815260046020526040812055611c8b565b6003611b36826001614484565b81548110611b5457634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160038281548110611b8357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016000820181600001908054611ba590614632565b611bb0929190613a01565b5060019182015490820180546001600160a01b0319166001600160a01b039092169190911790556003805460049160009185908110611bff57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b03168352820192909252604001902054611c3791906145ef565b6004600060038481548110611c5c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b031683528201929092526040019020555b60019250611e7d565b8215611e7d57600354611ca9906001906145ef565b811415611d1b5760038181548110611cd157634e487b7160e01b600052603260045260246000fd5b60009182526020822060029091020190611ceb82826139c5565b5060010180546001600160a01b03191690556001600160a01b038416600090815260046020526040812055611e7d565b6003611d28826001614484565b81548110611d4657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160038281548110611d7557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016000820181600001908054611d9790614632565b611da2929190613a01565b5060019182015490820180546001600160a01b0319166001600160a01b039092169190911790556003805460049160009185908110611df157634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b03168352820192909252604001902054611e2991906145ef565b6004600060038481548110611e4e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b031683528201929092526040019020555b80611e878161466d565b915050611a52565b50505050565b600b5433906001600160a01b03168114611ec15760405162461bcd60e51b815260040161020a9061429c565b50600c55565b600b5433906001600160a01b03168114611ef35760405162461bcd60e51b815260040161020a9061429c565b50600b80546001600160a01b0319166001600160a01b0392909216919091179055565b611f1e61363c565b6001600160a01b0316611f2f610a14565b6001600160a01b031614611f555760405162461bcd60e51b815260040161020a90614240565b6115b06000613713565b611f6761363c565b6001600160a01b0316611f78610a14565b6001600160a01b031614611f9e5760405162461bcd60e51b815260040161020a90614240565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b611fc861363c565b6001600160a01b0316611fd9610a14565b6001600160a01b031614611fff5760405162461bcd60e51b815260040161020a90614240565b6115b0613763565b61200f61363c565b6001600160a01b0316612020610a14565b6001600160a01b0316146120465760405162461bcd60e51b815260040161020a90614240565b6001600160a01b03808316600090815260106020908152604080832093851683529290522054611928576001600160a01b038281166000818152600f6020908152604080832080546001810182558185528385200180546001600160a01b0319169688169687179055848452546010835281842095845294909152908190209290925590517fa52f7b1728c567fcd948cc67f684e16d4fb0d5722b68b503532427991f6dd583906120f8908490613e6a565b60405180910390a25050565b606061210e61363c565b6001600160a01b031661211f610a14565b6001600160a01b0316146121455760405162461bcd60e51b815260040161020a90614240565b6005805480602002602001604051908101604052809291908181526020016000905b82821015611443578382906000526020600020906002020160405180604001604052908160008201805461219a90614632565b80601f01602080910402602001604051908101604052809291908181526020018280546121c690614632565b80156122135780601f106121e857610100808354040283529160200191612213565b820191906000526020600020905b8154815290600101906020018083116121f657829003601f168201915b50505091835250506001918201546001600160a01b0316602091820152918352929092019101612167565b60155433906001600160a01b0316811461226a5760405162461bcd60e51b815260040161020a90614213565b6001600160a01b038316600090815260046020526040902054156122a4576001600160a01b03831660009081526013602052604090208290555b505050565b600a546001600160a01b031633146122d35760405162461bcd60e51b815260040161020a906142cc565b6001600160a01b0383166000908152600e602052604090205481111561230b5760405162461bcd60e51b815260040161020a90614184565b612314826137c4565b6001600160a01b0382166000908152600e602052604090205461233790826109b7565b6001600160a01b038084166000908152600e602052604080822093909355908516815220546123669082613573565b6001600160a01b039093166000908152600e60205260409020929092555050565b600061239161363c565b6001600160a01b03166123a2610a14565b6001600160a01b0316146123c85760405162461bcd60e51b815260040161020a90614240565b506001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b6123fc61363c565b6001600160a01b031661240d610a14565b6001600160a01b0316146124335760405162461bcd60e51b815260040161020a90614240565b686c697175696469747960b81b60005260166020527f12f5885fa87a9935e45e311927d6cabb9713d8deec1bd5119658a3f9c3d27bd55460ff161561248a5760405162461bcd60e51b815260040161020a90614367565b686c697175696469747960b81b60005260166020527f12f5885fa87a9935e45e311927d6cabb9713d8deec1bd5119658a3f9c3d27bd5805460ff191660011790556124d36109a7565b156124f05760405162461bcd60e51b815260040161020a906141b2565b6001600160a01b038086166000908152601060209081526040808320938816835292905220546125325760405162461bcd60e51b815260040161020a906143d5565b6001600160a01b038216156125c75760405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb9061256f9088908590600401613ea2565b602060405180830381600087803b15801561258957600080fd5b505af115801561259d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c19190613cba565b50612608565b6040516001600160a01b0386169082156108fc029083906000818181858888f193505050506126085760405162461bcd60e51b815260040161020a906140f9565b60405163a7d545db60e01b81526001600160a01b0386169063a7d545db9061263890849086908990600401614405565b600060405180830381600087803b15801561265257600080fd5b505af1158015612666573d6000803e3d6000fd5b50505050846001600160a01b03167f9aea42c06bd9566935fae5cfe7b814263ab2a34321a6f1ea740c6c1d1bf36625858585856040516126a99493929190613ebb565b60405180910390a26001600160a01b0385166000908152601260205260409020546126d490846109b7565b6001600160a01b038087166000818152601260209081526040808320959095556010815284822089851683528152848220549282526011815284822093871682529283528381208282529092529190205461272f90836109b7565b6001600160a01b0396871660009081526011602090815260408083209690991682529485528781209281529184529581209590955550686c697175696469747960b81b9093525050601690527f12f5885fa87a9935e45e311927d6cabb9713d8deec1bd5119658a3f9c3d27bd5805460ff19169055565b6127ae61363c565b6001600160a01b03166127bf610a14565b6001600160a01b0316146127e55760405162461bcd60e51b815260040161020a90614240565b611e8f8484848433610a23565b6008541561281b57426008541161281b5760405162461bcd60e51b815260040161020a90614330565b6128236109a7565b156128405760405162461bcd60e51b815260040161020a906141b2565b6001600160a01b03821660009081526004602052604081205415612862575060015b80156122a4576262757960e81b60005260166020527fed504661a2af55b2d629cf1e6af8ae7df46823d2d4fbd752e48c55ff2e18ea575460ff16156128b95760405162461bcd60e51b815260040161020a90614367565b6262757960e81b60005260166020527fed504661a2af55b2d629cf1e6af8ae7df46823d2d4fbd752e48c55ff2e18ea57805460ff191660011790556040516323b872dd60e01b81526001600160a01b038416906323b872dd9061292490339030908790600401613e7e565b602060405180830381600087803b15801561293e57600080fd5b505af1158015612952573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129769190613cba565b15612c5257336001600160a01b03167f6caa883d8010fcd771ad0a52289f7940b3e91e5579cf0dd96ae1774e6d25cffa8484426040516129b893929190613ee5565b60405180910390a233600090815260146020526040902054612a2657600680546001810182557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b031916339081179091559054600091825260146020526040909120555b336000908152600d602090815260408083206001600160a01b0387168452909152902054612b555760006040518060400160405280856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612a9457600080fd5b505afa158015612aa8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ad09190810190613ce1565b8152336020918201526005805460018101825560009190915282518051939450849360029092027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00192612b2992849290910190613941565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b336000908152600d602090815260408083206001600160a01b0387168452909152902054612b8390836109b7565b336000908152600d602090815260408083206001600160a01b038816808552908352818420948555600190940180546001600160a01b03191690941790935560139052205415612c5257612c013384846104f3612be387610e4e8a61357f565b6001600160a01b0389166000908152601360205260409020546109cc565b6001600160a01b038316600081815260136020526040908190205490517ffe1ed69b3efd6d71f3708d26a6e1ce738b7233ef728bc42c2687cad399ccf7d391612c4991614069565b60405180910390a25b6262757960e81b60005260166020527fed504661a2af55b2d629cf1e6af8ae7df46823d2d4fbd752e48c55ff2e18ea57805460ff19169055505050565b60606003805480602002602001604051908101604052809291908181526020016000905b828210156114435783829060005260206000209060020201604051806040016040529081600082018054612ce690614632565b80601f0160208091040260200160405190810160405280929190818152602001828054612d1290614632565b8015612d5f5780601f10612d3457610100808354040283529160200191612d5f565b820191906000526020600020905b815481529060010190602001808311612d4257829003601f168201915b50505091835250506001918201546001600160a01b0316602091820152918352929092019101612cb3565b600a546040516370a0823160e01b81526000916001600160a01b0316906370a0823190612dbb908590600401613e6a565b60206040518083038186803b158015612dd357600080fd5b505afa158015612de7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190613d6c565b612e1361363c565b6001600160a01b0316612e24610a14565b6001600160a01b031614612e4a5760405162461bcd60e51b815260040161020a90614240565b600791909155600855565b612e5d61363c565b6001600160a01b0316612e6e610a14565b6001600160a01b031614612e945760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038116612eba5760405162461bcd60e51b815260040161020a906140b3565b612ec381613713565b50565b612ece61363c565b6001600160a01b0316612edf610a14565b6001600160a01b031614612f055760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038216600090815260026020526040902054611928576040805180820182528281526001600160a01b038481166020808401828152600180548082018255600082815287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660029384029081019190915593517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf790940180546001600160a01b031916949097169390931790955554838252939091528490209190915591519091907f88d0ad67f2cd85c03baf1ec3dd94c0da1d9c39d37407214b1e4182ee8bf13ffc9061191e908590614069565b61300461363c565b6001600160a01b0316613015610a14565b6001600160a01b03161461303b5760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038083166000908152601060209081526040808320938516835292905290812054156122a4576001600160a01b0383166000908152600f6020526040812054905b8181101561355e576001600160a01b038581166000908152600f60205260409020805491861691839081106130c857634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415613319576001600160a01b0385166000908152600f6020526040902054613108906001906145ef565b811415613187576001600160a01b0385166000908152600f6020526040902080548290811061314757634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03878116835260108252604080842091881684529152812055613310565b6001600160a01b0385166000908152600f602052604090206131aa826001614484565b815481106131c857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b038881168452600f909252604090922080549190921691908390811061321357634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559187168152601082526040808220600f909352812080546001939291908590811061327657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546132a591906145ef565b6001600160a01b0386166000908152601060209081526040808320600f90925282208054919291859081106132ea57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6001925061354c565b821561354c576001600160a01b0385166000908152600f6020526040902054613344906001906145ef565b8114156133c3576001600160a01b0385166000908152600f6020526040902080548290811061338357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b0387811683526010825260408084209188168452915281205561354c565b6001600160a01b0385166000908152600f602052604090206133e6826001614484565b8154811061340457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b038881168452600f909252604090922080549190921691908390811061344f57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559187168152601082526040808220600f90935281208054600193929190859081106134b257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546134e191906145ef565b6001600160a01b0386166000908152601060209081526040808320600f909252822080549192918590811061352657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b806135568161466d565b915050613083565b5050505050565b8161192857611928816138b4565b60006109c382846145ef565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156135bb57600080fd5b505afa1580156135cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f39190613deb565b60ff16905060006136056012836138c4565b905061361281600a614502565b610a0c90670de0b6b3a76400006145d0565b60006109c383836109cc565b60006109c38383613640565b3390565b600061364f8215156004613565565b8261365c575060006109c6565b6000613670670de0b6b3a7640000856145d0565b9050613690670de0b6b3a7640000613688868461449c565b146005613565565b61369a838261449c565b9150506109c6565b6136aa6109a7565b6136c65760405162461bcd60e51b815260040161020a90614085565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6136fc61363c565b6040516137099190613e6a565b60405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61376b6109a7565b156137885760405162461bcd60e51b815260040161020a906141e9565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586136fc61363c565b600354600090815b8181101561385c576001600160a01b0384166000908152600d60205260408120600380548391908590811061381157634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b03168352820192909252604001902054111561384a57600192505b806138548161466d565b9150506137cc565b50816122a457600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0385166001600160a01b0319909116179055505050565b612ec3816210905360ea1b6138e0565b60006138d4838311156001613565565b6000610a0c83856145ef565b62461bcd60e51b600090815260206004526007602452600a808404818106603090810160081b958390069590950190829004918206850160101b01602363ffffff0060e086901c160160181b0190930160c81b60445260e882901c90606490fd5b82805461394d90614632565b90600052602060002090601f01602090048101928261396f57600085556139b5565b82601f1061398857805160ff19168380011785556139b5565b828001600101855582156139b5579182015b828111156139b557825182559160200191906001019061399a565b506139c1929150613a7c565b5090565b5080546139d190614632565b6000825580601f106139e35750612ec3565b601f016020900490600052602060002090810190612ec39190613a7c565b828054613a0d90614632565b90600052602060002090601f016020900481019282613a2f57600085556139b5565b82601f10613a4057805485556139b5565b828001600101855582156139b557600052602060002091601f016020900482015b828111156139b5578254825591600101919060010190613a61565b5b808211156139c15760008155600101613a7d565b80356001600160a01b038116811461156457600080fd5b600060208284031215613ab9578081fd5b6109c382613a91565b60008060408385031215613ad4578081fd5b613add83613a91565b9150613aeb60208401613a91565b90509250929050565b600080600060608486031215613b08578081fd5b613b1184613a91565b9250613b1f60208501613a91565b9150613b2d60408501613a91565b90509250925092565b600080600060608486031215613b4a578283fd5b613b5384613a91565b9250613b6160208501613a91565b9150604084013590509250925092565b600080600080600060a08688031215613b88578081fd5b613b9186613a91565b9450613b9f60208701613a91565b935060408601359250613bb460608701613a91565b949793965091946080013592915050565b60008060008060808587031215613bda578384fd5b613be385613a91565b9350613bf160208601613a91565b93969395505050506040820135916060013590565b60008060408385031215613c18578182fd5b613c2183613a91565b946020939093013593505050565b60008060408385031215613c41578182fd5b613c4a83613a91565b9150602083013567ffffffffffffffff811115613c65578182fd5b8301601f81018513613c75578182fd5b8035613c88613c838261445c565b614432565b818152866020838501011115613c9c578384fd5b81602084016020830137908101602001929092525090939092509050565b600060208284031215613ccb578081fd5b81518015158114613cda578182fd5b9392505050565b600060208284031215613cf2578081fd5b815167ffffffffffffffff811115613d08578182fd5b8201601f81018413613d18578182fd5b8051613d26613c838261445c565b818152856020838501011115613d3a578384fd5b613d4b826020830160208601614606565b95945050505050565b600060208284031215613d65578081fd5b5035919050565b600060208284031215613d7d578081fd5b5051919050565b60008060408385031215613d96578182fd5b82359150613aeb60208401613a91565b600080600060608486031215613dba578081fd5b83359250613b1f60208501613a91565b60008060408385031215613ddc578182fd5b50508035926020909101359150565b600060208284031215613dfc578081fd5b815160ff81168114613cda578182fd5b60008151808452613e24816020860160208601614606565b601f01601f19169290920160200192915050565b6000815160408452613e4d6040850182613e0c565b6020938401516001600160a01b0316949093019390935250919050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6020808252825182820181905260009190848201906040850190845b81811015613f475783516001600160a01b031683529284019291840191600101613f22565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613f9e578151805185528601516001600160a01b0316868501529284019290850190600101613f70565b5091979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015613ffe57603f19888603018452613fec858351613e38565b94509285019290850190600101613fd0565b5092979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015613ffe57603f1988860301845261404c858351613e38565b94509285019290850190600101614030565b901515815260200190565b90815260200190565b6000602082526109c36020830184613e0c565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252600f908201526e151c985b9cd9995c8819985a5b1959608a1b604082015260600190565b6020808252601d908201527f4c6f636b656420746f2070726576656e742072656e656e7472616e6379000000604082015260600190565b6020808252601190820152702ab739bab83837b93a32b2103a37b5b2b760791b604082015260600190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b60208082526018908201527f436f6e747261637420696e207061757365642073746174650000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b602080825260139082015272556e617574686f72697a6564206f7261636c6560681b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c16995c9bc8195d1a081cd95b9d609a1b604082015260600190565b6020808252601690820152752ab730baba3437b934bd32b2103a3932b0b9bab932b960511b604082015260600190565b6020808252601390820152722ab730baba3437b934bd32b21039b2b73232b960691b604082015260600190565b6020808252601d908201527f4c697175696469747920706f6f6c20646f6573206e6f74206578697374000000604082015260600190565b6020808252601c908201527f537562736372697074696f6e2077696e646f7720627265616368656400000000604082015260600190565b6020808252601c908201527f4c6f636b656420746f2070726576656e74207265656e7472616e637900000000604082015260600190565b6020808252601a908201527f4c6f636b656420746f2061766f6964207265656e7472616e6379000000000000604082015260600190565b60208082526016908201527513585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b9283526001600160a01b03918216602084015216604082015260600190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156144545761445461469e565b604052919050565b600067ffffffffffffffff8211156144765761447661469e565b50601f01601f191660200190565b6000821982111561449757614497614688565b500190565b6000826144b757634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116144ce57506144f9565b8187048211156144e0576144e0614688565b808616156144ed57918102915b9490941c9380026144bf565b94509492505050565b60006109c3600019848460008261451b57506001613cda565b8161452857506000613cda565b816001811461453e576002811461454857614575565b6001915050613cda565b60ff84111561455957614559614688565b6001841b91508482111561456f5761456f614688565b50613cda565b5060208310610133831016604e8410600b84101617156145a8575081810a838111156145a3576145a3614688565b613cda565b6145b584848460016144bc565b8086048211156145c7576145c7614688565b02949350505050565b60008160001904831182151516156145ea576145ea614688565b500290565b60008282101561460157614601614688565b500390565b60005b83811015614621578181015183820152602001614609565b83811115611e8f5750506000910152565b60028104600182168061464657607f821691505b6020821081141561466757634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561468157614681614688565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212200de7e9963704e55a0ad39e476e1a70c3c46f639715cd5e7a85170297de3a7bfa64736f6c63430008000033","deployedBytecode":"0x6080604052600436106101dc5760003560e01c80638456cb5911610102578063ccc241c611610095578063e4afbc6b11610064578063e4afbc6b14610927578063f2fde38b14610947578063f81f3ee714610967578063f85771b214610987576105a6565b8063ccc241c6146108a5578063cce7ec13146108c5578063d3c7c2c7146108e5578063e3d670d714610907576105a6565b8063bd5c5420116100d1578063bd5c542014610818578063beabacc814610838578063cac7495c14610858578063cb7c4c5514610885576105a6565b80638456cb591461079f5780638513c619146107b45780638da5cb5b146107d4578063b2f5a54c146107f6576105a6565b806356abb19b1161017a5780636260f1d8116101495780636260f1d81461072a578063671d64291461074a578063715018a61461076a5780637adbf9731461077f576105a6565b806356abb19b146106a85780635c975abb146106c85780635d4f5b1c146106ea5780635fa7b5841461070a576105a6565b806333060226116101b657806333060226146106265780633f4ba83a14610653578063451353f1146106685780634ea14cab14610688576105a6565b806305061616146105ab5780631fbe552e146105cd57806324ef84ec146105f8576105a6565b366105a657600854156102135742600854116102135760405162461bcd60e51b815260040161020a90614330565b60405180910390fd5b346102305760405162461bcd60e51b815260040161020a90614275565b6102386109a7565b156102555760405162461bcd60e51b815260040161020a906141b2565b6b195d1a195c9c9958d95a5c1d60a21b60005260166020527fb3b8c7d2c1b102ad55c0edb99b20386f39cf054abae56169c4cbb4ae61d09c245460ff16156102af5760405162461bcd60e51b815260040161020a9061439e565b7fb3b8c7d2c1b102ad55c0edb99b20386f39cf054abae56169c4cbb4ae61d09c24805460ff19166001179055336000908152600d6020908152604080832083805290915290205461039e576040805160808101825260059181018281526432ba3432b960d91b60608301528152336020808301919091528254600181018455600093909352815180519293849360029091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00192610372928492910190613941565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b3360009081526014602052604090205461040457600680546001810182557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b031916339081179091559054600091825260146020526040909120555b336000908152600d6020908152604080832083805290915290205461042990346109b7565b336000818152600d6020908152604080832083805290915280822093909355915190917f6caa883d8010fcd771ad0a52289f7940b3e91e5579cf0dd96ae1774e6d25cffa9161047c919034904290613ee5565b60405180910390a26000805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c541561056357600080805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c5461050091339134906104f39082906109cc565b6104fb610a14565b610a23565b600080805260136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c546040517ffe1ed69b3efd6d71f3708d26a6e1ce738b7233ef728bc42c2687cad399ccf7d39161055a91614069565b60405180910390a25b6b195d1a195c9c9958d95a5c1d60a21b60005260166020527fb3b8c7d2c1b102ad55c0edb99b20386f39cf054abae56169c4cbb4ae61d09c24805460ff19169055005b600080fd5b3480156105b757600080fd5b506105cb6105c6366004613d84565b610f64565b005b3480156105d957600080fd5b506105e26113d7565b6040516105ef9190613f53565b60405180910390f35b34801561060457600080fd5b50610618610613366004613aa8565b61144c565b6040516105ef929190614424565b34801561063257600080fd5b50610646610641366004613aa8565b6114b3565b6040516105ef9190613f06565b34801561065f57600080fd5b506105cb611569565b34801561067457600080fd5b506105cb610683366004613da6565b6115b2565b34801561069457600080fd5b506105cb6106a3366004613c2f565b6117e6565b3480156106b457600080fd5b506106186106c3366004613af4565b61192c565b3480156106d457600080fd5b506106dd6109a7565b6040516105ef919061405e565b3480156106f657600080fd5b506106dd610705366004613aa8565b6119c1565b34801561071657600080fd5b506105cb610725366004613aa8565b6119ef565b34801561073657600080fd5b506105cb610745366004613d54565b611e95565b34801561075657600080fd5b506105cb610765366004613aa8565b611ec7565b34801561077657600080fd5b506105cb611f16565b34801561078b57600080fd5b506105cb61079a366004613aa8565b611f5f565b3480156107ab57600080fd5b506105cb611fc0565b3480156107c057600080fd5b506105cb6107cf366004613ac2565b612007565b3480156107e057600080fd5b506107e9610a14565b6040516105ef9190613e6a565b34801561080257600080fd5b5061080b612104565b6040516105ef9190613fab565b34801561082457600080fd5b506105cb610833366004613c06565b61223e565b34801561084457600080fd5b506105cb610853366004613b36565b6122a9565b34801561086457600080fd5b50610878610873366004613ac2565b612387565b6040516105ef9190614069565b34801561089157600080fd5b506105cb6108a0366004613b71565b6123f4565b3480156108b157600080fd5b506105cb6108c0366004613bc5565b6127a6565b3480156108d157600080fd5b506105cb6108e0366004613c06565b6127f2565b3480156108f157600080fd5b506108fa612c8f565b6040516105ef919061400b565b34801561091357600080fd5b50610878610922366004613aa8565b612d8a565b34801561093357600080fd5b506105cb610942366004613dca565b612e0b565b34801561095357600080fd5b506105cb610962366004613aa8565b612e55565b34801561097357600080fd5b506105cb610982366004613c06565b612ec6565b34801561099357600080fd5b506105cb6109a2366004613ac2565b612ffc565b600054600160a01b900460ff1690565b60006109c38284614484565b90505b92915050565b6000806109d983856145d0565b90506109fa8415806109f35750836109f1868461449c565b145b6003613565565b610a0c670de0b6b3a76400008261449c565b949350505050565b6000546001600160a01b031690565b64697373756560d81b60005260166020527f4b98a68c0e9a4222d5629a7c41cbb37cf7e565aa176f51e8e1fdb860de97a7eb5460ff1615610a765760405162461bcd60e51b815260040161020a90614122565b7f4b98a68c0e9a4222d5629a7c41cbb37cf7e565aa176f51e8e1fdb860de97a7eb805460ff191660011790556001600160a01b038086166000908152600d6020908152604080832093881683529290522054610ad29084613573565b6001600160a01b038087166000908152600d6020908152604080832093891683529290522055600754821180610b8c5750600a54604080516318160ddd60e01b81529051610b89926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610b4957600080fd5b505afa158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b819190613d6c565b600954613573565b82115b15610ca7576001600160a01b038581166000908152600d6020908152604080832088851684529091529020600101541615610c6a576001600160a01b038086166000908152600d6020908152604080832088851684529091529081902060010154905163a9059cbb60e01b815291169063a9059cbb90610c129088908790600401613ea2565b602060405180830381600087803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c649190613cba565b50610ca2565b6040516001600160a01b0386169084156108fc029085906000818181858888f19350505050158015610ca0573d6000803e3d6000fd5b505b610f23565b600a546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610cdb90849089908790600401613e7e565b602060405180830381600087803b158015610cf557600080fd5b505af1158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d9190613cba565b50610d3a600954836109b7565b6009556001600160a01b0385166000908152600e6020526040902054610d6090836109b7565b6001600160a01b038087166000818152600e6020908152604080832095909555600d81528482208985168352905283902060010154925190927f3ed92bcd8133ac027f02bc9c77f471ab91c233a24bc157dd38ba2affabe5578392610dcb9291169087908790613ee5565b60405180910390a26001600160a01b038581166000908152600d6020908152604080832088851684529091529020600101541615610ed8576001600160a01b038086166000908152600d602090815260408083208885168452909152902060010154600b549082169163a9059cbb9116610e69610e5b610e5388610e4e8b61357f565b613624565b600c546109cc565b610e648961357f565b613630565b6040518363ffffffff1660e01b8152600401610e86929190613ea2565b602060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca09190613cba565b600b54600c546001600160a01b03909116906108fc90610ef99086906109cc565b6040518115909202916000818181858888f19350505050158015610f21573d6000803e3d6000fd5b505b505064697373756560d81b60005250506016602052507f4b98a68c0e9a4222d5629a7c41cbb37cf7e565aa176f51e8e1fdb860de97a7eb805460ff19169055565b610f6c61363c565b6001600160a01b0316610f7d610a14565b6001600160a01b031614610fa35760405162461bcd60e51b815260040161020a90614240565b651c185e5bdd5d60d21b60005260166020527f7444e57a0ca2660bc207c9b0be3e2ebc380f4993ebcd3576ea4772060960ec465460ff1615610ff75760405162461bcd60e51b815260040161020a90614122565b651c185e5bdd5d60d21b60005260166020527f7444e57a0ca2660bc207c9b0be3e2ebc380f4993ebcd3576ea4772060960ec46805460ff19166001179055600a546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906110679030908690600401613ea2565b600060405180830381600087803b15801561108157600080fd5b505af1158015611095573d6000803e3d6000fd5b5050506001600160a01b0382166000908152601260205260409020600101546110bf9150836109b7565b6001600160a01b038083166000818152601260205260409081902060010193909355600a54925190927f80974c5e383db0ffd4e95148f9ead5f8ba4bdec21852d45c6835a85270f974b792611118929116908690613ea2565b60405180910390a260065460095460005b8281101561139557600061118f611189600e60006006868154811061115e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205485613640565b876109cc565b600a54600680549293506001600160a01b039091169163a9059cbb9190859081106111ca57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160e01b031960e084901b168152611202916001600160a01b0316908590600401613ea2565b602060405180830381600087803b15801561121c57600080fd5b505af1158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190613cba565b506006828154811061127657634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600a546040516001600160a01b0392831692888116927faff7dc23e73108bdcc5d448247830289c3f256cc40d0549a07288163db4a42db926112cb929091169086904290613ee5565b60405180910390a36112df600954826109b7565b600981905550611338600e60006006858154811061130d57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054826109b7565b600e60006006858154811061135d57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902055508061138d8161466d565b915050611129565b5050651c185e5bdd5d60d21b60005250506016602052507f7444e57a0ca2660bc207c9b0be3e2ebc380f4993ebcd3576ea4772060960ec46805460ff19169055565b60606001805480602002602001604051908101604052809291908181526020016000905b828210156114435760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b03168284015290835290920191016113fb565b50505050905090565b60008061145761363c565b6001600160a01b0316611468610a14565b6001600160a01b03161461148e5760405162461bcd60e51b815260040161020a90614240565b50506001600160a01b0316600090815260126020526040902080546001909101549091565b60606114bd61363c565b6001600160a01b03166114ce610a14565b6001600160a01b0316146114f45760405162461bcd60e51b815260040161020a90614240565b6001600160a01b0382166000908152600f60209081526040918290208054835181840281018401909452808452909183018282801561155c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161153e575b505050505090505b919050565b61157161363c565b6001600160a01b0316611582610a14565b6001600160a01b0316146115a85760405162461bcd60e51b815260040161020a90614240565b6115b06136a2565b565b336000908152600260205260409020546115de5760405162461bcd60e51b815260040161020a906142f9565b6001600160a01b0382166000908152600460205260409020546116135760405162461bcd60e51b815260040161020a90614159565b61161b6109a7565b156116385760405162461bcd60e51b815260040161020a906141b2565b696469737472696275746560b01b60005260166020527fb0b635b44c76df09d65d311ff1b4470edb9a69f5367035a3232b0d5a11405ee95460ff16156116905760405162461bcd60e51b815260040161020a90614367565b7fb0b635b44c76df09d65d311ff1b4470edb9a69f5367035a3232b0d5a11405ee9805460ff191660011790553360009081526010602090815260408083206001600160a01b0385168452909152902054600954158015906116f057508015155b156117a1573360009081526011602090815260408083206001600160a01b0387168452825280832084845290915290206001015461172e90856109b7565b3360008181526011602090815260408083206001600160a01b038981168552908352818420878552909252918290206001019390935551918416917fdff48603d759a1933637840c945468e0b9fd413b5101770cafd01d93d60b5ade906117989087908990613ea2565b60405180910390a35b5050696469737472696275746560b01b600052505060166020527fb0b635b44c76df09d65d311ff1b4470edb9a69f5367035a3232b0d5a11405ee9805460ff19169055565b6117ee61363c565b6001600160a01b03166117ff610a14565b6001600160a01b0316146118255760405162461bcd60e51b815260040161020a90614240565b6001600160a01b03821660009081526004602052604090205461192857604080518082019091528181526001600160a01b0383166020808301919091526003805460018101825560009190915282518051849360029093027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01926118ae928492910190613941565b5060209182015160019190910180546001600160a01b0319166001600160a01b03928316179055600354908516600081815260049093526040928390209190915590517f10f1836bf661ec2d6e439744a2c220af8cd27522822842b304e2f5e00aea47b49061191e908590614072565b60405180910390a2505b5050565b60008061193761363c565b6001600160a01b0316611948610a14565b6001600160a01b03161461196e5760405162461bcd60e51b815260040161020a90614240565b50506001600160a01b039283166000818152601060209081526040808320948716835293815283822054928252601181528382209490951681529284528183209083529092522080546001909101549091565b6001600160a01b038116600090815260046020526040812054156119e757506001611564565b506000611564565b6119f761363c565b6001600160a01b0316611a08610a14565b6001600160a01b031614611a2e5760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038116600090815260046020526040812054156119285760035460005b81811015611e8f57836001600160a01b031660038281548110611a8557634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546001600160a01b03161415611c9457600354611ab7906001906145ef565b811415611b295760038181548110611adf57634e487b7160e01b600052603260045260246000fd5b60009182526020822060029091020190611af982826139c5565b5060010180546001600160a01b03191690556001600160a01b038416600090815260046020526040812055611c8b565b6003611b36826001614484565b81548110611b5457634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160038281548110611b8357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016000820181600001908054611ba590614632565b611bb0929190613a01565b5060019182015490820180546001600160a01b0319166001600160a01b039092169190911790556003805460049160009185908110611bff57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b03168352820192909252604001902054611c3791906145ef565b6004600060038481548110611c5c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b031683528201929092526040019020555b60019250611e7d565b8215611e7d57600354611ca9906001906145ef565b811415611d1b5760038181548110611cd157634e487b7160e01b600052603260045260246000fd5b60009182526020822060029091020190611ceb82826139c5565b5060010180546001600160a01b03191690556001600160a01b038416600090815260046020526040812055611e7d565b6003611d28826001614484565b81548110611d4657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160038281548110611d7557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016000820181600001908054611d9790614632565b611da2929190613a01565b5060019182015490820180546001600160a01b0319166001600160a01b039092169190911790556003805460049160009185908110611df157634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b03168352820192909252604001902054611e2991906145ef565b6004600060038481548110611e4e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b031683528201929092526040019020555b80611e878161466d565b915050611a52565b50505050565b600b5433906001600160a01b03168114611ec15760405162461bcd60e51b815260040161020a9061429c565b50600c55565b600b5433906001600160a01b03168114611ef35760405162461bcd60e51b815260040161020a9061429c565b50600b80546001600160a01b0319166001600160a01b0392909216919091179055565b611f1e61363c565b6001600160a01b0316611f2f610a14565b6001600160a01b031614611f555760405162461bcd60e51b815260040161020a90614240565b6115b06000613713565b611f6761363c565b6001600160a01b0316611f78610a14565b6001600160a01b031614611f9e5760405162461bcd60e51b815260040161020a90614240565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b611fc861363c565b6001600160a01b0316611fd9610a14565b6001600160a01b031614611fff5760405162461bcd60e51b815260040161020a90614240565b6115b0613763565b61200f61363c565b6001600160a01b0316612020610a14565b6001600160a01b0316146120465760405162461bcd60e51b815260040161020a90614240565b6001600160a01b03808316600090815260106020908152604080832093851683529290522054611928576001600160a01b038281166000818152600f6020908152604080832080546001810182558185528385200180546001600160a01b0319169688169687179055848452546010835281842095845294909152908190209290925590517fa52f7b1728c567fcd948cc67f684e16d4fb0d5722b68b503532427991f6dd583906120f8908490613e6a565b60405180910390a25050565b606061210e61363c565b6001600160a01b031661211f610a14565b6001600160a01b0316146121455760405162461bcd60e51b815260040161020a90614240565b6005805480602002602001604051908101604052809291908181526020016000905b82821015611443578382906000526020600020906002020160405180604001604052908160008201805461219a90614632565b80601f01602080910402602001604051908101604052809291908181526020018280546121c690614632565b80156122135780601f106121e857610100808354040283529160200191612213565b820191906000526020600020905b8154815290600101906020018083116121f657829003601f168201915b50505091835250506001918201546001600160a01b0316602091820152918352929092019101612167565b60155433906001600160a01b0316811461226a5760405162461bcd60e51b815260040161020a90614213565b6001600160a01b038316600090815260046020526040902054156122a4576001600160a01b03831660009081526013602052604090208290555b505050565b600a546001600160a01b031633146122d35760405162461bcd60e51b815260040161020a906142cc565b6001600160a01b0383166000908152600e602052604090205481111561230b5760405162461bcd60e51b815260040161020a90614184565b612314826137c4565b6001600160a01b0382166000908152600e602052604090205461233790826109b7565b6001600160a01b038084166000908152600e602052604080822093909355908516815220546123669082613573565b6001600160a01b039093166000908152600e60205260409020929092555050565b600061239161363c565b6001600160a01b03166123a2610a14565b6001600160a01b0316146123c85760405162461bcd60e51b815260040161020a90614240565b506001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b6123fc61363c565b6001600160a01b031661240d610a14565b6001600160a01b0316146124335760405162461bcd60e51b815260040161020a90614240565b686c697175696469747960b81b60005260166020527f12f5885fa87a9935e45e311927d6cabb9713d8deec1bd5119658a3f9c3d27bd55460ff161561248a5760405162461bcd60e51b815260040161020a90614367565b686c697175696469747960b81b60005260166020527f12f5885fa87a9935e45e311927d6cabb9713d8deec1bd5119658a3f9c3d27bd5805460ff191660011790556124d36109a7565b156124f05760405162461bcd60e51b815260040161020a906141b2565b6001600160a01b038086166000908152601060209081526040808320938816835292905220546125325760405162461bcd60e51b815260040161020a906143d5565b6001600160a01b038216156125c75760405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb9061256f9088908590600401613ea2565b602060405180830381600087803b15801561258957600080fd5b505af115801561259d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c19190613cba565b50612608565b6040516001600160a01b0386169082156108fc029083906000818181858888f193505050506126085760405162461bcd60e51b815260040161020a906140f9565b60405163a7d545db60e01b81526001600160a01b0386169063a7d545db9061263890849086908990600401614405565b600060405180830381600087803b15801561265257600080fd5b505af1158015612666573d6000803e3d6000fd5b50505050846001600160a01b03167f9aea42c06bd9566935fae5cfe7b814263ab2a34321a6f1ea740c6c1d1bf36625858585856040516126a99493929190613ebb565b60405180910390a26001600160a01b0385166000908152601260205260409020546126d490846109b7565b6001600160a01b038087166000818152601260209081526040808320959095556010815284822089851683528152848220549282526011815284822093871682529283528381208282529092529190205461272f90836109b7565b6001600160a01b0396871660009081526011602090815260408083209690991682529485528781209281529184529581209590955550686c697175696469747960b81b9093525050601690527f12f5885fa87a9935e45e311927d6cabb9713d8deec1bd5119658a3f9c3d27bd5805460ff19169055565b6127ae61363c565b6001600160a01b03166127bf610a14565b6001600160a01b0316146127e55760405162461bcd60e51b815260040161020a90614240565b611e8f8484848433610a23565b6008541561281b57426008541161281b5760405162461bcd60e51b815260040161020a90614330565b6128236109a7565b156128405760405162461bcd60e51b815260040161020a906141b2565b6001600160a01b03821660009081526004602052604081205415612862575060015b80156122a4576262757960e81b60005260166020527fed504661a2af55b2d629cf1e6af8ae7df46823d2d4fbd752e48c55ff2e18ea575460ff16156128b95760405162461bcd60e51b815260040161020a90614367565b6262757960e81b60005260166020527fed504661a2af55b2d629cf1e6af8ae7df46823d2d4fbd752e48c55ff2e18ea57805460ff191660011790556040516323b872dd60e01b81526001600160a01b038416906323b872dd9061292490339030908790600401613e7e565b602060405180830381600087803b15801561293e57600080fd5b505af1158015612952573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129769190613cba565b15612c5257336001600160a01b03167f6caa883d8010fcd771ad0a52289f7940b3e91e5579cf0dd96ae1774e6d25cffa8484426040516129b893929190613ee5565b60405180910390a233600090815260146020526040902054612a2657600680546001810182557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b031916339081179091559054600091825260146020526040909120555b336000908152600d602090815260408083206001600160a01b0387168452909152902054612b555760006040518060400160405280856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612a9457600080fd5b505afa158015612aa8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ad09190810190613ce1565b8152336020918201526005805460018101825560009190915282518051939450849360029092027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00192612b2992849290910190613941565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b336000908152600d602090815260408083206001600160a01b0387168452909152902054612b8390836109b7565b336000908152600d602090815260408083206001600160a01b038816808552908352818420948555600190940180546001600160a01b03191690941790935560139052205415612c5257612c013384846104f3612be387610e4e8a61357f565b6001600160a01b0389166000908152601360205260409020546109cc565b6001600160a01b038316600081815260136020526040908190205490517ffe1ed69b3efd6d71f3708d26a6e1ce738b7233ef728bc42c2687cad399ccf7d391612c4991614069565b60405180910390a25b6262757960e81b60005260166020527fed504661a2af55b2d629cf1e6af8ae7df46823d2d4fbd752e48c55ff2e18ea57805460ff19169055505050565b60606003805480602002602001604051908101604052809291908181526020016000905b828210156114435783829060005260206000209060020201604051806040016040529081600082018054612ce690614632565b80601f0160208091040260200160405190810160405280929190818152602001828054612d1290614632565b8015612d5f5780601f10612d3457610100808354040283529160200191612d5f565b820191906000526020600020905b815481529060010190602001808311612d4257829003601f168201915b50505091835250506001918201546001600160a01b0316602091820152918352929092019101612cb3565b600a546040516370a0823160e01b81526000916001600160a01b0316906370a0823190612dbb908590600401613e6a565b60206040518083038186803b158015612dd357600080fd5b505afa158015612de7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190613d6c565b612e1361363c565b6001600160a01b0316612e24610a14565b6001600160a01b031614612e4a5760405162461bcd60e51b815260040161020a90614240565b600791909155600855565b612e5d61363c565b6001600160a01b0316612e6e610a14565b6001600160a01b031614612e945760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038116612eba5760405162461bcd60e51b815260040161020a906140b3565b612ec381613713565b50565b612ece61363c565b6001600160a01b0316612edf610a14565b6001600160a01b031614612f055760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038216600090815260026020526040902054611928576040805180820182528281526001600160a01b038481166020808401828152600180548082018255600082815287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660029384029081019190915593517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf790940180546001600160a01b031916949097169390931790955554838252939091528490209190915591519091907f88d0ad67f2cd85c03baf1ec3dd94c0da1d9c39d37407214b1e4182ee8bf13ffc9061191e908590614069565b61300461363c565b6001600160a01b0316613015610a14565b6001600160a01b03161461303b5760405162461bcd60e51b815260040161020a90614240565b6001600160a01b038083166000908152601060209081526040808320938516835292905290812054156122a4576001600160a01b0383166000908152600f6020526040812054905b8181101561355e576001600160a01b038581166000908152600f60205260409020805491861691839081106130c857634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415613319576001600160a01b0385166000908152600f6020526040902054613108906001906145ef565b811415613187576001600160a01b0385166000908152600f6020526040902080548290811061314757634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03878116835260108252604080842091881684529152812055613310565b6001600160a01b0385166000908152600f602052604090206131aa826001614484565b815481106131c857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b038881168452600f909252604090922080549190921691908390811061321357634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559187168152601082526040808220600f909352812080546001939291908590811061327657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546132a591906145ef565b6001600160a01b0386166000908152601060209081526040808320600f90925282208054919291859081106132ea57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6001925061354c565b821561354c576001600160a01b0385166000908152600f6020526040902054613344906001906145ef565b8114156133c3576001600160a01b0385166000908152600f6020526040902080548290811061338357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b0387811683526010825260408084209188168452915281205561354c565b6001600160a01b0385166000908152600f602052604090206133e6826001614484565b8154811061340457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b038881168452600f909252604090922080549190921691908390811061344f57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559187168152601082526040808220600f90935281208054600193929190859081106134b257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546134e191906145ef565b6001600160a01b0386166000908152601060209081526040808320600f909252822080549192918590811061352657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b806135568161466d565b915050613083565b5050505050565b8161192857611928816138b4565b60006109c382846145ef565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156135bb57600080fd5b505afa1580156135cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f39190613deb565b60ff16905060006136056012836138c4565b905061361281600a614502565b610a0c90670de0b6b3a76400006145d0565b60006109c383836109cc565b60006109c38383613640565b3390565b600061364f8215156004613565565b8261365c575060006109c6565b6000613670670de0b6b3a7640000856145d0565b9050613690670de0b6b3a7640000613688868461449c565b146005613565565b61369a838261449c565b9150506109c6565b6136aa6109a7565b6136c65760405162461bcd60e51b815260040161020a90614085565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6136fc61363c565b6040516137099190613e6a565b60405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61376b6109a7565b156137885760405162461bcd60e51b815260040161020a906141e9565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586136fc61363c565b600354600090815b8181101561385c576001600160a01b0384166000908152600d60205260408120600380548391908590811061381157634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020191909101546001600160a01b03168352820192909252604001902054111561384a57600192505b806138548161466d565b9150506137cc565b50816122a457600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0385166001600160a01b0319909116179055505050565b612ec3816210905360ea1b6138e0565b60006138d4838311156001613565565b6000610a0c83856145ef565b62461bcd60e51b600090815260206004526007602452600a808404818106603090810160081b958390069590950190829004918206850160101b01602363ffffff0060e086901c160160181b0190930160c81b60445260e882901c90606490fd5b82805461394d90614632565b90600052602060002090601f01602090048101928261396f57600085556139b5565b82601f1061398857805160ff19168380011785556139b5565b828001600101855582156139b5579182015b828111156139b557825182559160200191906001019061399a565b506139c1929150613a7c565b5090565b5080546139d190614632565b6000825580601f106139e35750612ec3565b601f016020900490600052602060002090810190612ec39190613a7c565b828054613a0d90614632565b90600052602060002090601f016020900481019282613a2f57600085556139b5565b82601f10613a4057805485556139b5565b828001600101855582156139b557600052602060002091601f016020900482015b828111156139b5578254825591600101919060010190613a61565b5b808211156139c15760008155600101613a7d565b80356001600160a01b038116811461156457600080fd5b600060208284031215613ab9578081fd5b6109c382613a91565b60008060408385031215613ad4578081fd5b613add83613a91565b9150613aeb60208401613a91565b90509250929050565b600080600060608486031215613b08578081fd5b613b1184613a91565b9250613b1f60208501613a91565b9150613b2d60408501613a91565b90509250925092565b600080600060608486031215613b4a578283fd5b613b5384613a91565b9250613b6160208501613a91565b9150604084013590509250925092565b600080600080600060a08688031215613b88578081fd5b613b9186613a91565b9450613b9f60208701613a91565b935060408601359250613bb460608701613a91565b949793965091946080013592915050565b60008060008060808587031215613bda578384fd5b613be385613a91565b9350613bf160208601613a91565b93969395505050506040820135916060013590565b60008060408385031215613c18578182fd5b613c2183613a91565b946020939093013593505050565b60008060408385031215613c41578182fd5b613c4a83613a91565b9150602083013567ffffffffffffffff811115613c65578182fd5b8301601f81018513613c75578182fd5b8035613c88613c838261445c565b614432565b818152866020838501011115613c9c578384fd5b81602084016020830137908101602001929092525090939092509050565b600060208284031215613ccb578081fd5b81518015158114613cda578182fd5b9392505050565b600060208284031215613cf2578081fd5b815167ffffffffffffffff811115613d08578182fd5b8201601f81018413613d18578182fd5b8051613d26613c838261445c565b818152856020838501011115613d3a578384fd5b613d4b826020830160208601614606565b95945050505050565b600060208284031215613d65578081fd5b5035919050565b600060208284031215613d7d578081fd5b5051919050565b60008060408385031215613d96578182fd5b82359150613aeb60208401613a91565b600080600060608486031215613dba578081fd5b83359250613b1f60208501613a91565b60008060408385031215613ddc578182fd5b50508035926020909101359150565b600060208284031215613dfc578081fd5b815160ff81168114613cda578182fd5b60008151808452613e24816020860160208601614606565b601f01601f19169290920160200192915050565b6000815160408452613e4d6040850182613e0c565b6020938401516001600160a01b0316949093019390935250919050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6020808252825182820181905260009190848201906040850190845b81811015613f475783516001600160a01b031683529284019291840191600101613f22565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613f9e578151805185528601516001600160a01b0316868501529284019290850190600101613f70565b5091979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015613ffe57603f19888603018452613fec858351613e38565b94509285019290850190600101613fd0565b5092979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015613ffe57603f1988860301845261404c858351613e38565b94509285019290850190600101614030565b901515815260200190565b90815260200190565b6000602082526109c36020830184613e0c565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252600f908201526e151c985b9cd9995c8819985a5b1959608a1b604082015260600190565b6020808252601d908201527f4c6f636b656420746f2070726576656e742072656e656e7472616e6379000000604082015260600190565b6020808252601190820152702ab739bab83837b93a32b2103a37b5b2b760791b604082015260600190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b60208082526018908201527f436f6e747261637420696e207061757365642073746174650000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b602080825260139082015272556e617574686f72697a6564206f7261636c6560681b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c16995c9bc8195d1a081cd95b9d609a1b604082015260600190565b6020808252601690820152752ab730baba3437b934bd32b2103a3932b0b9bab932b960511b604082015260600190565b6020808252601390820152722ab730baba3437b934bd32b21039b2b73232b960691b604082015260600190565b6020808252601d908201527f4c697175696469747920706f6f6c20646f6573206e6f74206578697374000000604082015260600190565b6020808252601c908201527f537562736372697074696f6e2077696e646f7720627265616368656400000000604082015260600190565b6020808252601c908201527f4c6f636b656420746f2070726576656e74207265656e7472616e637900000000604082015260600190565b6020808252601a908201527f4c6f636b656420746f2061766f6964207265656e7472616e6379000000000000604082015260600190565b60208082526016908201527513585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b9283526001600160a01b03918216602084015216604082015260600190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156144545761445461469e565b604052919050565b600067ffffffffffffffff8211156144765761447661469e565b50601f01601f191660200190565b6000821982111561449757614497614688565b500190565b6000826144b757634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116144ce57506144f9565b8187048211156144e0576144e0614688565b808616156144ed57918102915b9490941c9380026144bf565b94509492505050565b60006109c3600019848460008261451b57506001613cda565b8161452857506000613cda565b816001811461453e576002811461454857614575565b6001915050613cda565b60ff84111561455957614559614688565b6001841b91508482111561456f5761456f614688565b50613cda565b5060208310610133831016604e8410600b84101617156145a8575081810a838111156145a3576145a3614688565b613cda565b6145b584848460016144bc565b8086048211156145c7576145c7614688565b02949350505050565b60008160001904831182151516156145ea576145ea614688565b500290565b60008282101561460157614601614688565b500390565b60005b83811015614621578181015183820152602001614609565b83811115611e8f5750506000910152565b60028104600182168061464657607f821691505b6020821081141561466757634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561468157614681614688565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212200de7e9963704e55a0ad39e476e1a70c3c46f639715cd5e7a85170297de3a7bfa64736f6c63430008000033","immutableReferences":{},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:510:17","statements":[{"nodeType":"YulBlock","src":"6:3:17","statements":[]},{"body":{"nodeType":"YulBlock","src":"146:362:17","statements":[{"body":{"nodeType":"YulBlock","src":"193:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"202:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"210:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"195:6:17"},"nodeType":"YulFunctionCall","src":"195:22:17"},"nodeType":"YulExpressionStatement","src":"195:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"167:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"176:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"163:3:17"},"nodeType":"YulFunctionCall","src":"163:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"188:3:17","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"159:3:17"},"nodeType":"YulFunctionCall","src":"159:33:17"},"nodeType":"YulIf","src":"156:2:17"},{"nodeType":"YulAssignment","src":"228:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"244:9:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"238:5:17"},"nodeType":"YulFunctionCall","src":"238:16:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"228:6:17"}]},{"nodeType":"YulAssignment","src":"263:35:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"283:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"294:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"279:3:17"},"nodeType":"YulFunctionCall","src":"279:18:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"273:5:17"},"nodeType":"YulFunctionCall","src":"273:25:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"263:6:17"}]},{"nodeType":"YulAssignment","src":"307:35:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"327:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"338:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:17"},"nodeType":"YulFunctionCall","src":"323:18:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"317:5:17"},"nodeType":"YulFunctionCall","src":"317:25:17"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"307:6:17"}]},{"nodeType":"YulVariableDeclaration","src":"351:38:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"374:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"385:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"370:3:17"},"nodeType":"YulFunctionCall","src":"370:18:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"364:5:17"},"nodeType":"YulFunctionCall","src":"364:25:17"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"355:5:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"452:26:17","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"461:6:17"},{"name":"value3","nodeType":"YulIdentifier","src":"469:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"454:6:17"},"nodeType":"YulFunctionCall","src":"454:22:17"},"nodeType":"YulExpressionStatement","src":"454:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"411:5:17"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"422:5:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"442:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:17"},"nodeType":"YulFunctionCall","src":"433:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"446:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"429:3:17"},"nodeType":"YulFunctionCall","src":"429:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"418:3:17"},"nodeType":"YulFunctionCall","src":"418:31:17"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"408:2:17"},"nodeType":"YulFunctionCall","src":"408:42:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"401:6:17"},"nodeType":"YulFunctionCall","src":"401:50:17"},"nodeType":"YulIf","src":"398:2:17"},{"nodeType":"YulAssignment","src":"487:15:17","value":{"name":"value","nodeType":"YulIdentifier","src":"497:5:17"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"487:6:17"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"88:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"99:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"111:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"119:6:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"127:6:17","type":""},{"name":"value3","nodeType":"YulTypedName","src":"135:6:17","type":""}],"src":"14:494:17"}]},"contents":"{\\n    { }\\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\\n    {\\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\\n        value0 := mload(headStart)\\n        value1 := mload(add(headStart, 32))\\n        value2 := mload(add(headStart, 64))\\n        let value := mload(add(headStart, 96))\\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value3, value3) }\\n        value3 := value\\n    }\\n}","id":17,"language":"Yul","name":"#utility.yul"}],"deployedGeneratedSources":[{"ast":{"nodeType":"YulBlock","src":"0:23112:17","statements":[{"nodeType":"YulBlock","src":"6:3:17","statements":[]},{"body":{"nodeType":"YulBlock","src":"65:124:17","statements":[{"nodeType":"YulAssignment","src":"75:29:17","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"97:6:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"84:12:17"},"nodeType":"YulFunctionCall","src":"84:20:17"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"75:5:17"}]},{"body":{"nodeType":"YulBlock","src":"167:16:17","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"176:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"179:1:17","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"169:6:17"},"nodeType":"YulFunctionCall","src":"169:12:17"},"nodeType":"YulExpressionStatement","src":"169:12:17"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"126:5:17"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"137:5:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"152:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"157:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"148:3:17"},"nodeType":"YulFunctionCall","src":"148:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"161:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"144:3:17"},"nodeType":"YulFunctionCall","src":"144:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"133:3:17"},"nodeType":"YulFunctionCall","src":"133:31:17"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"123:2:17"},"nodeType":"YulFunctionCall","src":"123:42:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"116:6:17"},"nodeType":"YulFunctionCall","src":"116:50:17"},"nodeType":"YulIf","src":"113:2:17"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"44:6:17","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"55:5:17","type":""}],"src":"14:175:17"},{"body":{"nodeType":"YulBlock","src":"264:128:17","statements":[{"body":{"nodeType":"YulBlock","src":"310:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"319:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"327:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"312:6:17"},"nodeType":"YulFunctionCall","src":"312:22:17"},"nodeType":"YulExpressionStatement","src":"312:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"285:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"294:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"281:3:17"},"nodeType":"YulFunctionCall","src":"281:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"306:2:17","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"277:3:17"},"nodeType":"YulFunctionCall","src":"277:32:17"},"nodeType":"YulIf","src":"274:2:17"},{"nodeType":"YulAssignment","src":"345:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"376:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"355:20:17"},"nodeType":"YulFunctionCall","src":"355:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"345:6:17"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"230:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"241:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"253:6:17","type":""}],"src":"194:198:17"},{"body":{"nodeType":"YulBlock","src":"484:187:17","statements":[{"body":{"nodeType":"YulBlock","src":"530:26:17","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"539:6:17"},{"name":"value1","nodeType":"YulIdentifier","src":"547:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"532:6:17"},"nodeType":"YulFunctionCall","src":"532:22:17"},"nodeType":"YulExpressionStatement","src":"532:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"505:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"514:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"501:3:17"},"nodeType":"YulFunctionCall","src":"501:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"526:2:17","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"497:3:17"},"nodeType":"YulFunctionCall","src":"497:32:17"},"nodeType":"YulIf","src":"494:2:17"},{"nodeType":"YulAssignment","src":"565:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"596:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"575:20:17"},"nodeType":"YulFunctionCall","src":"575:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"565:6:17"}]},{"nodeType":"YulAssignment","src":"615:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"661:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"646:3:17"},"nodeType":"YulFunctionCall","src":"646:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"625:20:17"},"nodeType":"YulFunctionCall","src":"625:40:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"615:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"442:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"453:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"465:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"473:6:17","type":""}],"src":"397:274:17"},{"body":{"nodeType":"YulBlock","src":"780:246:17","statements":[{"body":{"nodeType":"YulBlock","src":"826:26:17","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"835:6:17"},{"name":"value2","nodeType":"YulIdentifier","src":"843:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"828:6:17"},"nodeType":"YulFunctionCall","src":"828:22:17"},"nodeType":"YulExpressionStatement","src":"828:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"801:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"810:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"797:3:17"},"nodeType":"YulFunctionCall","src":"797:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"822:2:17","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"793:3:17"},"nodeType":"YulFunctionCall","src":"793:32:17"},"nodeType":"YulIf","src":"790:2:17"},{"nodeType":"YulAssignment","src":"861:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"892:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"871:20:17"},"nodeType":"YulFunctionCall","src":"871:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"861:6:17"}]},{"nodeType":"YulAssignment","src":"911:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"957:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"942:3:17"},"nodeType":"YulFunctionCall","src":"942:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"921:20:17"},"nodeType":"YulFunctionCall","src":"921:40:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"911:6:17"}]},{"nodeType":"YulAssignment","src":"970:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1005:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"1016:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1001:3:17"},"nodeType":"YulFunctionCall","src":"1001:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"980:20:17"},"nodeType":"YulFunctionCall","src":"980:40:17"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"970:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"730:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"741:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"753:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"761:6:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"769:6:17","type":""}],"src":"676:350:17"},{"body":{"nodeType":"YulBlock","src":"1135:238:17","statements":[{"body":{"nodeType":"YulBlock","src":"1181:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1190:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1183:6:17"},"nodeType":"YulFunctionCall","src":"1183:22:17"},"nodeType":"YulExpressionStatement","src":"1183:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1156:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"1165:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1152:3:17"},"nodeType":"YulFunctionCall","src":"1152:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"1177:2:17","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1148:3:17"},"nodeType":"YulFunctionCall","src":"1148:32:17"},"nodeType":"YulIf","src":"1145:2:17"},{"nodeType":"YulAssignment","src":"1216:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1247:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1226:20:17"},"nodeType":"YulFunctionCall","src":"1226:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1216:6:17"}]},{"nodeType":"YulAssignment","src":"1266:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1301:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"1312:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:17"},"nodeType":"YulFunctionCall","src":"1297:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1276:20:17"},"nodeType":"YulFunctionCall","src":"1276:40:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1266:6:17"}]},{"nodeType":"YulAssignment","src":"1325:42:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1352:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"1363:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1348:3:17"},"nodeType":"YulFunctionCall","src":"1348:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1335:12:17"},"nodeType":"YulFunctionCall","src":"1335:32:17"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1325:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1085:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1096:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1108:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1116:6:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1124:6:17","type":""}],"src":"1031:342:17"},{"body":{"nodeType":"YulBlock","src":"1516:350:17","statements":[{"body":{"nodeType":"YulBlock","src":"1563:26:17","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1572:6:17"},{"name":"value4","nodeType":"YulIdentifier","src":"1580:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:17"},"nodeType":"YulFunctionCall","src":"1565:22:17"},"nodeType":"YulExpressionStatement","src":"1565:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1537:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"1546:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1533:3:17"},"nodeType":"YulFunctionCall","src":"1533:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"1558:3:17","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1529:3:17"},"nodeType":"YulFunctionCall","src":"1529:33:17"},"nodeType":"YulIf","src":"1526:2:17"},{"nodeType":"YulAssignment","src":"1598:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1629:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1608:20:17"},"nodeType":"YulFunctionCall","src":"1608:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1598:6:17"}]},{"nodeType":"YulAssignment","src":"1648:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:17"},"nodeType":"YulFunctionCall","src":"1679:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1658:20:17"},"nodeType":"YulFunctionCall","src":"1658:40:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1648:6:17"}]},{"nodeType":"YulAssignment","src":"1707:42:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:17"},"nodeType":"YulFunctionCall","src":"1730:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:17"},"nodeType":"YulFunctionCall","src":"1717:32:17"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:17"}]},{"nodeType":"YulAssignment","src":"1758:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1793:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"1804:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1789:3:17"},"nodeType":"YulFunctionCall","src":"1789:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1768:20:17"},"nodeType":"YulFunctionCall","src":"1768:40:17"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1758:6:17"}]},{"nodeType":"YulAssignment","src":"1817:43:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1844:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"1855:3:17","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1840:3:17"},"nodeType":"YulFunctionCall","src":"1840:19:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1827:12:17"},"nodeType":"YulFunctionCall","src":"1827:33:17"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1817:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1450:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1461:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1473:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1481:6:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1489:6:17","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1497:6:17","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1505:6:17","type":""}],"src":"1378:488:17"},{"body":{"nodeType":"YulBlock","src":"1992:290:17","statements":[{"body":{"nodeType":"YulBlock","src":"2039:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2048:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"2056:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2041:6:17"},"nodeType":"YulFunctionCall","src":"2041:22:17"},"nodeType":"YulExpressionStatement","src":"2041:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2013:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"2022:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2009:3:17"},"nodeType":"YulFunctionCall","src":"2009:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"2034:3:17","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2005:3:17"},"nodeType":"YulFunctionCall","src":"2005:33:17"},"nodeType":"YulIf","src":"2002:2:17"},{"nodeType":"YulAssignment","src":"2074:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2105:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2084:20:17"},"nodeType":"YulFunctionCall","src":"2084:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2074:6:17"}]},{"nodeType":"YulAssignment","src":"2124:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2159:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"2170:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2155:3:17"},"nodeType":"YulFunctionCall","src":"2155:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2134:20:17"},"nodeType":"YulFunctionCall","src":"2134:40:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2124:6:17"}]},{"nodeType":"YulAssignment","src":"2183:42:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2210:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"2221:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2206:3:17"},"nodeType":"YulFunctionCall","src":"2206:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2193:12:17"},"nodeType":"YulFunctionCall","src":"2193:32:17"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2183:6:17"}]},{"nodeType":"YulAssignment","src":"2234:42:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2261:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"2272:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2257:3:17"},"nodeType":"YulFunctionCall","src":"2257:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2244:12:17"},"nodeType":"YulFunctionCall","src":"2244:32:17"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2234:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1934:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1945:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1957:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1965:6:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1973:6:17","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1981:6:17","type":""}],"src":"1871:411:17"},{"body":{"nodeType":"YulBlock","src":"2374:179:17","statements":[{"body":{"nodeType":"YulBlock","src":"2420:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2429:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"2437:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2422:6:17"},"nodeType":"YulFunctionCall","src":"2422:22:17"},"nodeType":"YulExpressionStatement","src":"2422:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2395:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"2404:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2391:3:17"},"nodeType":"YulFunctionCall","src":"2391:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"2416:2:17","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2387:3:17"},"nodeType":"YulFunctionCall","src":"2387:32:17"},"nodeType":"YulIf","src":"2384:2:17"},{"nodeType":"YulAssignment","src":"2455:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2486:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2465:20:17"},"nodeType":"YulFunctionCall","src":"2465:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2455:6:17"}]},{"nodeType":"YulAssignment","src":"2505:42:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2532:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"2543:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2528:3:17"},"nodeType":"YulFunctionCall","src":"2528:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2515:12:17"},"nodeType":"YulFunctionCall","src":"2515:32:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2505:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2332:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2343:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2355:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2363:6:17","type":""}],"src":"2287:266:17"},{"body":{"nodeType":"YulBlock","src":"2655:698:17","statements":[{"body":{"nodeType":"YulBlock","src":"2701:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2710:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"2718:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2703:6:17"},"nodeType":"YulFunctionCall","src":"2703:22:17"},"nodeType":"YulExpressionStatement","src":"2703:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2676:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"2685:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2672:3:17"},"nodeType":"YulFunctionCall","src":"2672:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"2697:2:17","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2668:3:17"},"nodeType":"YulFunctionCall","src":"2668:32:17"},"nodeType":"YulIf","src":"2665:2:17"},{"nodeType":"YulAssignment","src":"2736:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2767:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2746:20:17"},"nodeType":"YulFunctionCall","src":"2746:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2736:6:17"}]},{"nodeType":"YulVariableDeclaration","src":"2786:46:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2817:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"2828:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2813:3:17"},"nodeType":"YulFunctionCall","src":"2813:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2800:12:17"},"nodeType":"YulFunctionCall","src":"2800:32:17"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2790:6:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"2875:26:17","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2884:6:17"},{"name":"value1","nodeType":"YulIdentifier","src":"2892:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2877:6:17"},"nodeType":"YulFunctionCall","src":"2877:22:17"},"nodeType":"YulExpressionStatement","src":"2877:22:17"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2847:6:17"},{"kind":"number","nodeType":"YulLiteral","src":"2855:18:17","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2844:2:17"},"nodeType":"YulFunctionCall","src":"2844:30:17"},"nodeType":"YulIf","src":"2841:2:17"},{"nodeType":"YulVariableDeclaration","src":"2910:32:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2924:9:17"},{"name":"offset","nodeType":"YulIdentifier","src":"2935:6:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2920:3:17"},"nodeType":"YulFunctionCall","src":"2920:22:17"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2914:2:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"2990:26:17","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2999:6:17"},{"name":"value1","nodeType":"YulIdentifier","src":"3007:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2992:6:17"},"nodeType":"YulFunctionCall","src":"2992:22:17"},"nodeType":"YulExpressionStatement","src":"2992:22:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2969:2:17"},{"kind":"number","nodeType":"YulLiteral","src":"2973:4:17","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2965:3:17"},"nodeType":"YulFunctionCall","src":"2965:13:17"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2980:7:17"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2961:3:17"},"nodeType":"YulFunctionCall","src":"2961:27:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2954:6:17"},"nodeType":"YulFunctionCall","src":"2954:35:17"},"nodeType":"YulIf","src":"2951:2:17"},{"nodeType":"YulVariableDeclaration","src":"3025:26:17","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3048:2:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3035:12:17"},"nodeType":"YulFunctionCall","src":"3035:16:17"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3029:2:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3060:63:17","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3119:2:17"}],"functionName":{"name":"array_allocation_size_t_string","nodeType":"YulIdentifier","src":"3088:30:17"},"nodeType":"YulFunctionCall","src":"3088:34:17"}],"functionName":{"name":"allocateMemory","nodeType":"YulIdentifier","src":"3073:14:17"},"nodeType":"YulFunctionCall","src":"3073:50:17"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"3064:5:17","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3139:5:17"},{"name":"_2","nodeType":"YulIdentifier","src":"3146:2:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3132:6:17"},"nodeType":"YulFunctionCall","src":"3132:17:17"},"nodeType":"YulExpressionStatement","src":"3132:17:17"},{"body":{"nodeType":"YulBlock","src":"3195:26:17","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3204:6:17"},{"name":"value1","nodeType":"YulIdentifier","src":"3212:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3197:6:17"},"nodeType":"YulFunctionCall","src":"3197:22:17"},"nodeType":"YulExpressionStatement","src":"3197:22:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3172:2:17"},{"name":"_2","nodeType":"YulIdentifier","src":"3176:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3168:3:17"},"nodeType":"YulFunctionCall","src":"3168:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"3181:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3164:3:17"},"nodeType":"YulFunctionCall","src":"3164:20:17"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3186:7:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3161:2:17"},"nodeType":"YulFunctionCall","src":"3161:33:17"},"nodeType":"YulIf","src":"3158:2:17"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3247:5:17"},{"kind":"number","nodeType":"YulLiteral","src":"3254:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3243:3:17"},"nodeType":"YulFunctionCall","src":"3243:14:17"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3263:2:17"},{"kind":"number","nodeType":"YulLiteral","src":"3267:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3259:3:17"},"nodeType":"YulFunctionCall","src":"3259:11:17"},{"name":"_2","nodeType":"YulIdentifier","src":"3272:2:17"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3230:12:17"},"nodeType":"YulFunctionCall","src":"3230:45:17"},"nodeType":"YulExpressionStatement","src":"3230:45:17"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3299:5:17"},{"name":"_2","nodeType":"YulIdentifier","src":"3306:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3295:3:17"},"nodeType":"YulFunctionCall","src":"3295:14:17"},{"kind":"number","nodeType":"YulLiteral","src":"3311:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3291:3:17"},"nodeType":"YulFunctionCall","src":"3291:23:17"},{"name":"value1","nodeType":"YulIdentifier","src":"3316:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3284:6:17"},"nodeType":"YulFunctionCall","src":"3284:39:17"},"nodeType":"YulExpressionStatement","src":"3284:39:17"},{"nodeType":"YulAssignment","src":"3332:15:17","value":{"name":"array","nodeType":"YulIdentifier","src":"3342:5:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3332:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2613:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2624:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2636:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2644:6:17","type":""}],"src":"2558:795:17"},{"body":{"nodeType":"YulBlock","src":"3445:179:17","statements":[{"body":{"nodeType":"YulBlock","src":"3491:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3500:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"3508:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3493:6:17"},"nodeType":"YulFunctionCall","src":"3493:22:17"},"nodeType":"YulExpressionStatement","src":"3493:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3466:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"3475:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3462:3:17"},"nodeType":"YulFunctionCall","src":"3462:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"3487:2:17","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3458:3:17"},"nodeType":"YulFunctionCall","src":"3458:32:17"},"nodeType":"YulIf","src":"3455:2:17"},{"nodeType":"YulAssignment","src":"3526:41:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3557:9:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"3536:20:17"},"nodeType":"YulFunctionCall","src":"3536:31:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3526:6:17"}]},{"nodeType":"YulAssignment","src":"3576:42:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3603:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"3614:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3599:3:17"},"nodeType":"YulFunctionCall","src":"3599:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3586:12:17"},"nodeType":"YulFunctionCall","src":"3586:32:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3576:6:17"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3403:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3414:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3426:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3434:6:17","type":""}],"src":"3358:266:17"},{"body":{"nodeType":"YulBlock","src":"3707:219:17","statements":[{"body":{"nodeType":"YulBlock","src":"3753:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3762:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3755:6:17"},"nodeType":"YulFunctionCall","src":"3755:22:17"},"nodeType":"YulExpressionStatement","src":"3755:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3728:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"3737:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3724:3:17"},"nodeType":"YulFunctionCall","src":"3724:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"3749:2:17","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3720:3:17"},"nodeType":"YulFunctionCall","src":"3720:32:17"},"nodeType":"YulIf","src":"3717:2:17"},{"nodeType":"YulVariableDeclaration","src":"3788:29:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3807:9:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3801:5:17"},"nodeType":"YulFunctionCall","src":"3801:16:17"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3792:5:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"3870:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3879:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"3887:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3872:6:17"},"nodeType":"YulFunctionCall","src":"3872:22:17"},"nodeType":"YulExpressionStatement","src":"3872:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3839:5:17"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3860:5:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3853:6:17"},"nodeType":"YulFunctionCall","src":"3853:13:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3846:6:17"},"nodeType":"YulFunctionCall","src":"3846:21:17"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3836:2:17"},"nodeType":"YulFunctionCall","src":"3836:32:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3829:6:17"},"nodeType":"YulFunctionCall","src":"3829:40:17"},"nodeType":"YulIf","src":"3826:2:17"},{"nodeType":"YulAssignment","src":"3905:15:17","value":{"name":"value","nodeType":"YulIdentifier","src":"3915:5:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3905:6:17"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3673:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3684:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3696:6:17","type":""}],"src":"3629:297:17"},{"body":{"nodeType":"YulBlock","src":"4022:586:17","statements":[{"body":{"nodeType":"YulBlock","src":"4068:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4077:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"4085:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4070:6:17"},"nodeType":"YulFunctionCall","src":"4070:22:17"},"nodeType":"YulExpressionStatement","src":"4070:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4043:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"4052:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4039:3:17"},"nodeType":"YulFunctionCall","src":"4039:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"4064:2:17","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4035:3:17"},"nodeType":"YulFunctionCall","src":"4035:32:17"},"nodeType":"YulIf","src":"4032:2:17"},{"nodeType":"YulVariableDeclaration","src":"4103:30:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4123:9:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4117:5:17"},"nodeType":"YulFunctionCall","src":"4117:16:17"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4107:6:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"4176:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4185:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"4193:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4178:6:17"},"nodeType":"YulFunctionCall","src":"4178:22:17"},"nodeType":"YulExpressionStatement","src":"4178:22:17"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4148:6:17"},{"kind":"number","nodeType":"YulLiteral","src":"4156:18:17","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4145:2:17"},"nodeType":"YulFunctionCall","src":"4145:30:17"},"nodeType":"YulIf","src":"4142:2:17"},{"nodeType":"YulVariableDeclaration","src":"4211:32:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4225:9:17"},{"name":"offset","nodeType":"YulIdentifier","src":"4236:6:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4221:3:17"},"nodeType":"YulFunctionCall","src":"4221:22:17"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4215:2:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"4291:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4300:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"4308:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4293:6:17"},"nodeType":"YulFunctionCall","src":"4293:22:17"},"nodeType":"YulExpressionStatement","src":"4293:22:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4270:2:17"},{"kind":"number","nodeType":"YulLiteral","src":"4274:4:17","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4266:3:17"},"nodeType":"YulFunctionCall","src":"4266:13:17"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4281:7:17"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4262:3:17"},"nodeType":"YulFunctionCall","src":"4262:27:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4255:6:17"},"nodeType":"YulFunctionCall","src":"4255:35:17"},"nodeType":"YulIf","src":"4252:2:17"},{"nodeType":"YulVariableDeclaration","src":"4326:19:17","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4342:2:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4336:5:17"},"nodeType":"YulFunctionCall","src":"4336:9:17"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4330:2:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4354:63:17","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4413:2:17"}],"functionName":{"name":"array_allocation_size_t_string","nodeType":"YulIdentifier","src":"4382:30:17"},"nodeType":"YulFunctionCall","src":"4382:34:17"}],"functionName":{"name":"allocateMemory","nodeType":"YulIdentifier","src":"4367:14:17"},"nodeType":"YulFunctionCall","src":"4367:50:17"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"4358:5:17","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4433:5:17"},{"name":"_2","nodeType":"YulIdentifier","src":"4440:2:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4426:6:17"},"nodeType":"YulFunctionCall","src":"4426:17:17"},"nodeType":"YulExpressionStatement","src":"4426:17:17"},{"body":{"nodeType":"YulBlock","src":"4489:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4498:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"4506:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4491:6:17"},"nodeType":"YulFunctionCall","src":"4491:22:17"},"nodeType":"YulExpressionStatement","src":"4491:22:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4466:2:17"},{"name":"_2","nodeType":"YulIdentifier","src":"4470:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4462:3:17"},"nodeType":"YulFunctionCall","src":"4462:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4458:3:17"},"nodeType":"YulFunctionCall","src":"4458:20:17"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4480:7:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4455:2:17"},"nodeType":"YulFunctionCall","src":"4455:33:17"},"nodeType":"YulIf","src":"4452:2:17"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4550:2:17"},{"kind":"number","nodeType":"YulLiteral","src":"4554:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4546:3:17"},"nodeType":"YulFunctionCall","src":"4546:11:17"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4563:5:17"},{"kind":"number","nodeType":"YulLiteral","src":"4570:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4559:3:17"},"nodeType":"YulFunctionCall","src":"4559:14:17"},{"name":"_2","nodeType":"YulIdentifier","src":"4575:2:17"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4524:21:17"},"nodeType":"YulFunctionCall","src":"4524:54:17"},"nodeType":"YulExpressionStatement","src":"4524:54:17"},{"nodeType":"YulAssignment","src":"4587:15:17","value":{"name":"array","nodeType":"YulIdentifier","src":"4597:5:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4587:6:17"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3988:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3999:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4011:6:17","type":""}],"src":"3931:677:17"},{"body":{"nodeType":"YulBlock","src":"4683:120:17","statements":[{"body":{"nodeType":"YulBlock","src":"4729:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4738:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"4746:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4731:6:17"},"nodeType":"YulFunctionCall","src":"4731:22:17"},"nodeType":"YulExpressionStatement","src":"4731:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4704:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"4713:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4700:3:17"},"nodeType":"YulFunctionCall","src":"4700:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"4725:2:17","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4696:3:17"},"nodeType":"YulFunctionCall","src":"4696:32:17"},"nodeType":"YulIf","src":"4693:2:17"},{"nodeType":"YulAssignment","src":"4764:33:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4787:9:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4774:12:17"},"nodeType":"YulFunctionCall","src":"4774:23:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4764:6:17"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4649:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4660:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4672:6:17","type":""}],"src":"4613:190:17"},{"body":{"nodeType":"YulBlock","src":"4889:113:17","statements":[{"body":{"nodeType":"YulBlock","src":"4935:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4944:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"4952:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4937:6:17"},"nodeType":"YulFunctionCall","src":"4937:22:17"},"nodeType":"YulExpressionStatement","src":"4937:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4910:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"4919:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4906:3:17"},"nodeType":"YulFunctionCall","src":"4906:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"4931:2:17","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4902:3:17"},"nodeType":"YulFunctionCall","src":"4902:32:17"},"nodeType":"YulIf","src":"4899:2:17"},{"nodeType":"YulAssignment","src":"4970:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4986:9:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4980:5:17"},"nodeType":"YulFunctionCall","src":"4980:16:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4970:6:17"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4855:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4866:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4878:6:17","type":""}],"src":"4808:194:17"},{"body":{"nodeType":"YulBlock","src":"5094:179:17","statements":[{"body":{"nodeType":"YulBlock","src":"5140:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5149:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"5157:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5142:6:17"},"nodeType":"YulFunctionCall","src":"5142:22:17"},"nodeType":"YulExpressionStatement","src":"5142:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5115:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"5124:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5111:3:17"},"nodeType":"YulFunctionCall","src":"5111:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"5136:2:17","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5107:3:17"},"nodeType":"YulFunctionCall","src":"5107:32:17"},"nodeType":"YulIf","src":"5104:2:17"},{"nodeType":"YulAssignment","src":"5175:33:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5198:9:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5185:12:17"},"nodeType":"YulFunctionCall","src":"5185:23:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5175:6:17"}]},{"nodeType":"YulAssignment","src":"5217:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5252:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"5263:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5248:3:17"},"nodeType":"YulFunctionCall","src":"5248:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5227:20:17"},"nodeType":"YulFunctionCall","src":"5227:40:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5217:6:17"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5052:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5063:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5075:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5083:6:17","type":""}],"src":"5007:266:17"},{"body":{"nodeType":"YulBlock","src":"5382:238:17","statements":[{"body":{"nodeType":"YulBlock","src":"5428:26:17","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5437:6:17"},{"name":"value2","nodeType":"YulIdentifier","src":"5445:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5430:6:17"},"nodeType":"YulFunctionCall","src":"5430:22:17"},"nodeType":"YulExpressionStatement","src":"5430:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5403:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"5412:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5399:3:17"},"nodeType":"YulFunctionCall","src":"5399:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"5424:2:17","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5395:3:17"},"nodeType":"YulFunctionCall","src":"5395:32:17"},"nodeType":"YulIf","src":"5392:2:17"},{"nodeType":"YulAssignment","src":"5463:33:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5486:9:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5473:12:17"},"nodeType":"YulFunctionCall","src":"5473:23:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5463:6:17"}]},{"nodeType":"YulAssignment","src":"5505:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5540:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"5551:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5536:3:17"},"nodeType":"YulFunctionCall","src":"5536:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5515:20:17"},"nodeType":"YulFunctionCall","src":"5515:40:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5505:6:17"}]},{"nodeType":"YulAssignment","src":"5564:50:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5599:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5595:3:17"},"nodeType":"YulFunctionCall","src":"5595:18:17"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5574:20:17"},"nodeType":"YulFunctionCall","src":"5574:40:17"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5564:6:17"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5332:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5343:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5355:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5363:6:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5371:6:17","type":""}],"src":"5278:342:17"},{"body":{"nodeType":"YulBlock","src":"5712:171:17","statements":[{"body":{"nodeType":"YulBlock","src":"5758:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5767:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"5775:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5760:6:17"},"nodeType":"YulFunctionCall","src":"5760:22:17"},"nodeType":"YulExpressionStatement","src":"5760:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5733:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5729:3:17"},"nodeType":"YulFunctionCall","src":"5729:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"5754:2:17","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5725:3:17"},"nodeType":"YulFunctionCall","src":"5725:32:17"},"nodeType":"YulIf","src":"5722:2:17"},{"nodeType":"YulAssignment","src":"5793:33:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5816:9:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5803:12:17"},"nodeType":"YulFunctionCall","src":"5803:23:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5793:6:17"}]},{"nodeType":"YulAssignment","src":"5835:42:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5862:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"5873:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5858:3:17"},"nodeType":"YulFunctionCall","src":"5858:18:17"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5845:12:17"},"nodeType":"YulFunctionCall","src":"5845:32:17"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5835:6:17"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5670:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5681:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5693:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5701:6:17","type":""}],"src":"5625:258:17"},{"body":{"nodeType":"YulBlock","src":"5967:214:17","statements":[{"body":{"nodeType":"YulBlock","src":"6013:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6022:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"6030:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6015:6:17"},"nodeType":"YulFunctionCall","src":"6015:22:17"},"nodeType":"YulExpressionStatement","src":"6015:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5988:7:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"5997:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5984:3:17"},"nodeType":"YulFunctionCall","src":"5984:23:17"},{"kind":"number","nodeType":"YulLiteral","src":"6009:2:17","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5980:3:17"},"nodeType":"YulFunctionCall","src":"5980:32:17"},"nodeType":"YulIf","src":"5977:2:17"},{"nodeType":"YulVariableDeclaration","src":"6048:29:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6067:9:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6061:5:17"},"nodeType":"YulFunctionCall","src":"6061:16:17"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6052:5:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"6125:26:17","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6134:6:17"},{"name":"value0","nodeType":"YulIdentifier","src":"6142:6:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6127:6:17"},"nodeType":"YulFunctionCall","src":"6127:22:17"},"nodeType":"YulExpressionStatement","src":"6127:22:17"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6099:5:17"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6110:5:17"},{"kind":"number","nodeType":"YulLiteral","src":"6117:4:17","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6106:3:17"},"nodeType":"YulFunctionCall","src":"6106:16:17"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6096:2:17"},"nodeType":"YulFunctionCall","src":"6096:27:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6089:6:17"},"nodeType":"YulFunctionCall","src":"6089:35:17"},"nodeType":"YulIf","src":"6086:2:17"},{"nodeType":"YulAssignment","src":"6160:15:17","value":{"name":"value","nodeType":"YulIdentifier","src":"6170:5:17"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6160:6:17"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5933:9:17","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5944:7:17","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5956:6:17","type":""}],"src":"5888:293:17"},{"body":{"nodeType":"YulBlock","src":"6238:208:17","statements":[{"nodeType":"YulVariableDeclaration","src":"6248:26:17","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6268:5:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6262:5:17"},"nodeType":"YulFunctionCall","src":"6262:12:17"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6252:6:17","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6290:3:17"},{"name":"length","nodeType":"YulIdentifier","src":"6295:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6283:6:17"},"nodeType":"YulFunctionCall","src":"6283:19:17"},"nodeType":"YulExpressionStatement","src":"6283:19:17"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6337:5:17"},{"kind":"number","nodeType":"YulLiteral","src":"6344:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6333:3:17"},"nodeType":"YulFunctionCall","src":"6333:16:17"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6355:3:17"},{"kind":"number","nodeType":"YulLiteral","src":"6360:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6351:3:17"},"nodeType":"YulFunctionCall","src":"6351:14:17"},{"name":"length","nodeType":"YulIdentifier","src":"6367:6:17"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6311:21:17"},"nodeType":"YulFunctionCall","src":"6311:63:17"},"nodeType":"YulExpressionStatement","src":"6311:63:17"},{"nodeType":"YulAssignment","src":"6383:57:17","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6398:3:17"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6411:6:17"},{"kind":"number","nodeType":"YulLiteral","src":"6419:2:17","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6407:3:17"},"nodeType":"YulFunctionCall","src":"6407:15:17"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6428:2:17","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6424:3:17"},"nodeType":"YulFunctionCall","src":"6424:7:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6403:3:17"},"nodeType":"YulFunctionCall","src":"6403:29:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6394:3:17"},"nodeType":"YulFunctionCall","src":"6394:39:17"},{"kind":"number","nodeType":"YulLiteral","src":"6435:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6390:3:17"},"nodeType":"YulFunctionCall","src":"6390:50:17"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6383:3:17"}]}]},"name":"abi_encode_t_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6215:5:17","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6222:3:17","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6230:3:17","type":""}],"src":"6186:260:17"},{"body":{"nodeType":"YulBlock","src":"6513:246:17","statements":[{"nodeType":"YulVariableDeclaration","src":"6523:32:17","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6549:5:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6543:5:17"},"nodeType":"YulFunctionCall","src":"6543:12:17"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6527:12:17","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6571:3:17"},{"kind":"number","nodeType":"YulLiteral","src":"6576:4:17","type":"","value":"0x40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6564:6:17"},"nodeType":"YulFunctionCall","src":"6564:17:17"},"nodeType":"YulExpressionStatement","src":"6564:17:17"},{"nodeType":"YulVariableDeclaration","src":"6590:61:17","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6622:12:17"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6640:3:17"},{"kind":"number","nodeType":"YulLiteral","src":"6645:4:17","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6636:3:17"},"nodeType":"YulFunctionCall","src":"6636:14:17"}],"functionName":{"name":"abi_encode_t_string","nodeType":"YulIdentifier","src":"6602:19:17"},"nodeType":"YulFunctionCall","src":"6602:49:17"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"6594:4:17","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6671:3:17"},{"kind":"number","nodeType":"YulLiteral","src":"6676:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6667:3:17"},"nodeType":"YulFunctionCall","src":"6667:14:17"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6697:5:17"},{"kind":"number","nodeType":"YulLiteral","src":"6704:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6693:3:17"},"nodeType":"YulFunctionCall","src":"6693:16:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6687:5:17"},"nodeType":"YulFunctionCall","src":"6687:23:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6720:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6725:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6716:3:17"},"nodeType":"YulFunctionCall","src":"6716:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"6729:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6712:3:17"},"nodeType":"YulFunctionCall","src":"6712:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6683:3:17"},"nodeType":"YulFunctionCall","src":"6683:49:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6660:6:17"},"nodeType":"YulFunctionCall","src":"6660:73:17"},"nodeType":"YulExpressionStatement","src":"6660:73:17"},{"nodeType":"YulAssignment","src":"6742:11:17","value":{"name":"tail","nodeType":"YulIdentifier","src":"6749:4:17"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6742:3:17"}]}]},"name":"abi_encode_t_struct$_provider","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6490:5:17","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6497:3:17","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6505:3:17","type":""}],"src":"6451:308:17"},{"body":{"nodeType":"YulBlock","src":"6865:102:17","statements":[{"nodeType":"YulAssignment","src":"6875:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6887:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"6898:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6883:3:17"},"nodeType":"YulFunctionCall","src":"6883:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6875:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6917:9:17"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6932:6:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6948:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6953:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6944:3:17"},"nodeType":"YulFunctionCall","src":"6944:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"6957:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6940:3:17"},"nodeType":"YulFunctionCall","src":"6940:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6928:3:17"},"nodeType":"YulFunctionCall","src":"6928:32:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6910:6:17"},"nodeType":"YulFunctionCall","src":"6910:51:17"},"nodeType":"YulExpressionStatement","src":"6910:51:17"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6834:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6845:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6856:4:17","type":""}],"src":"6764:203:17"},{"body":{"nodeType":"YulBlock","src":"7129:218:17","statements":[{"nodeType":"YulAssignment","src":"7139:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7151:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"7162:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7147:3:17"},"nodeType":"YulFunctionCall","src":"7147:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7139:4:17"}]},{"nodeType":"YulVariableDeclaration","src":"7174:29:17","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7192:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7197:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7188:3:17"},"nodeType":"YulFunctionCall","src":"7188:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"7201:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7184:3:17"},"nodeType":"YulFunctionCall","src":"7184:19:17"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7178:2:17","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7219:9:17"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7234:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"7242:2:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7230:3:17"},"nodeType":"YulFunctionCall","src":"7230:15:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7212:6:17"},"nodeType":"YulFunctionCall","src":"7212:34:17"},"nodeType":"YulExpressionStatement","src":"7212:34:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7266:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"7277:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7262:3:17"},"nodeType":"YulFunctionCall","src":"7262:18:17"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7286:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"7294:2:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7282:3:17"},"nodeType":"YulFunctionCall","src":"7282:15:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7255:6:17"},"nodeType":"YulFunctionCall","src":"7255:43:17"},"nodeType":"YulExpressionStatement","src":"7255:43:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7318:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"7329:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7314:3:17"},"nodeType":"YulFunctionCall","src":"7314:18:17"},{"name":"value2","nodeType":"YulIdentifier","src":"7334:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7307:6:17"},"nodeType":"YulFunctionCall","src":"7307:34:17"},"nodeType":"YulExpressionStatement","src":"7307:34:17"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7082:9:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7093:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7101:6:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7109:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7120:4:17","type":""}],"src":"6972:375:17"},{"body":{"nodeType":"YulBlock","src":"7481:145:17","statements":[{"nodeType":"YulAssignment","src":"7491:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7503:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"7514:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7499:3:17"},"nodeType":"YulFunctionCall","src":"7499:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7491:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7533:9:17"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7548:6:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7564:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7569:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7560:3:17"},"nodeType":"YulFunctionCall","src":"7560:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"7573:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7556:3:17"},"nodeType":"YulFunctionCall","src":"7556:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7544:3:17"},"nodeType":"YulFunctionCall","src":"7544:32:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7526:6:17"},"nodeType":"YulFunctionCall","src":"7526:51:17"},"nodeType":"YulExpressionStatement","src":"7526:51:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7597:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"7608:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7593:3:17"},"nodeType":"YulFunctionCall","src":"7593:18:17"},{"name":"value1","nodeType":"YulIdentifier","src":"7613:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7586:6:17"},"nodeType":"YulFunctionCall","src":"7586:34:17"},"nodeType":"YulExpressionStatement","src":"7586:34:17"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7442:9:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7453:6:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7461:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7472:4:17","type":""}],"src":"7352:274:17"},{"body":{"nodeType":"YulBlock","src":"7816:262:17","statements":[{"nodeType":"YulAssignment","src":"7826:27:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7838:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"7849:3:17","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7834:3:17"},"nodeType":"YulFunctionCall","src":"7834:19:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7826:4:17"}]},{"nodeType":"YulVariableDeclaration","src":"7862:29:17","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7880:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7885:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7876:3:17"},"nodeType":"YulFunctionCall","src":"7876:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"7889:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7872:3:17"},"nodeType":"YulFunctionCall","src":"7872:19:17"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7866:2:17","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7907:9:17"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7922:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"7930:2:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7918:3:17"},"nodeType":"YulFunctionCall","src":"7918:15:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7900:6:17"},"nodeType":"YulFunctionCall","src":"7900:34:17"},"nodeType":"YulExpressionStatement","src":"7900:34:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7954:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"7965:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7950:3:17"},"nodeType":"YulFunctionCall","src":"7950:18:17"},{"name":"value1","nodeType":"YulIdentifier","src":"7970:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7943:6:17"},"nodeType":"YulFunctionCall","src":"7943:34:17"},"nodeType":"YulExpressionStatement","src":"7943:34:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7997:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"8008:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7993:3:17"},"nodeType":"YulFunctionCall","src":"7993:18:17"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8017:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"8025:2:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8013:3:17"},"nodeType":"YulFunctionCall","src":"8013:15:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7986:6:17"},"nodeType":"YulFunctionCall","src":"7986:43:17"},"nodeType":"YulExpressionStatement","src":"7986:43:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8049:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"8060:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8045:3:17"},"nodeType":"YulFunctionCall","src":"8045:18:17"},{"name":"value3","nodeType":"YulIdentifier","src":"8065:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8038:6:17"},"nodeType":"YulFunctionCall","src":"8038:34:17"},"nodeType":"YulExpressionStatement","src":"8038:34:17"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address_t_uint256__to_t_address_t_uint256_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7761:9:17","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7772:6:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7780:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7788:6:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7796:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7807:4:17","type":""}],"src":"7631:447:17"},{"body":{"nodeType":"YulBlock","src":"8240:188:17","statements":[{"nodeType":"YulAssignment","src":"8250:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8262:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"8273:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8258:3:17"},"nodeType":"YulFunctionCall","src":"8258:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8250:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8292:9:17"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8307:6:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8323:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8328:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8319:3:17"},"nodeType":"YulFunctionCall","src":"8319:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"8332:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8315:3:17"},"nodeType":"YulFunctionCall","src":"8315:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8303:3:17"},"nodeType":"YulFunctionCall","src":"8303:32:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8285:6:17"},"nodeType":"YulFunctionCall","src":"8285:51:17"},"nodeType":"YulExpressionStatement","src":"8285:51:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8356:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"8367:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8352:3:17"},"nodeType":"YulFunctionCall","src":"8352:18:17"},{"name":"value1","nodeType":"YulIdentifier","src":"8372:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8345:6:17"},"nodeType":"YulFunctionCall","src":"8345:34:17"},"nodeType":"YulExpressionStatement","src":"8345:34:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8399:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"8410:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8395:3:17"},"nodeType":"YulFunctionCall","src":"8395:18:17"},{"name":"value2","nodeType":"YulIdentifier","src":"8415:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8388:6:17"},"nodeType":"YulFunctionCall","src":"8388:34:17"},"nodeType":"YulExpressionStatement","src":"8388:34:17"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8193:9:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8204:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8212:6:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8220:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8231:4:17","type":""}],"src":"8083:345:17"},{"body":{"nodeType":"YulBlock","src":"8584:510:17","statements":[{"nodeType":"YulVariableDeclaration","src":"8594:12:17","value":{"kind":"number","nodeType":"YulLiteral","src":"8604:2:17","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8598:2:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8615:32:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8633:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"8644:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8629:3:17"},"nodeType":"YulFunctionCall","src":"8629:18:17"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"8619:6:17","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8663:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"8674:2:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8656:6:17"},"nodeType":"YulFunctionCall","src":"8656:21:17"},"nodeType":"YulExpressionStatement","src":"8656:21:17"},{"nodeType":"YulVariableDeclaration","src":"8686:17:17","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"8697:6:17"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"8690:3:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8712:27:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8732:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8726:5:17"},"nodeType":"YulFunctionCall","src":"8726:13:17"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8716:6:17","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"8755:6:17"},{"name":"length","nodeType":"YulIdentifier","src":"8763:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8748:6:17"},"nodeType":"YulFunctionCall","src":"8748:22:17"},"nodeType":"YulExpressionStatement","src":"8748:22:17"},{"nodeType":"YulAssignment","src":"8779:25:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8790:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"8801:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8786:3:17"},"nodeType":"YulFunctionCall","src":"8786:18:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8779:3:17"}]},{"nodeType":"YulVariableDeclaration","src":"8813:29:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8831:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"8839:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8827:3:17"},"nodeType":"YulFunctionCall","src":"8827:15:17"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"8817:6:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8851:13:17","value":{"name":"tail","nodeType":"YulIdentifier","src":"8860:4:17"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"8855:1:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"8922:146:17","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8943:3:17"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"8958:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8952:5:17"},"nodeType":"YulFunctionCall","src":"8952:13:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8975:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8980:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8971:3:17"},"nodeType":"YulFunctionCall","src":"8971:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"8984:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8967:3:17"},"nodeType":"YulFunctionCall","src":"8967:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8948:3:17"},"nodeType":"YulFunctionCall","src":"8948:39:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8936:6:17"},"nodeType":"YulFunctionCall","src":"8936:52:17"},"nodeType":"YulExpressionStatement","src":"8936:52:17"},{"nodeType":"YulAssignment","src":"9001:19:17","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9012:3:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9017:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9008:3:17"},"nodeType":"YulFunctionCall","src":"9008:12:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9001:3:17"}]},{"nodeType":"YulAssignment","src":"9033:25:17","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9047:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9055:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9043:3:17"},"nodeType":"YulFunctionCall","src":"9043:15:17"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9033:6:17"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8884:1:17"},{"name":"length","nodeType":"YulIdentifier","src":"8887:6:17"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8881:2:17"},"nodeType":"YulFunctionCall","src":"8881:13:17"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8895:18:17","statements":[{"nodeType":"YulAssignment","src":"8897:14:17","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8906:1:17"},{"kind":"number","nodeType":"YulLiteral","src":"8909:1:17","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8902:3:17"},"nodeType":"YulFunctionCall","src":"8902:9:17"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"8897:1:17"}]}]},"pre":{"nodeType":"YulBlock","src":"8877:3:17","statements":[]},"src":"8873:195:17"},{"nodeType":"YulAssignment","src":"9077:11:17","value":{"name":"pos","nodeType":"YulIdentifier","src":"9085:3:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9077:4:17"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8553:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8564:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8575:4:17","type":""}],"src":"8433:661:17"},{"body":{"nodeType":"YulBlock","src":"9302:616:17","statements":[{"nodeType":"YulVariableDeclaration","src":"9312:12:17","value":{"kind":"number","nodeType":"YulLiteral","src":"9322:2:17","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9316:2:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9333:32:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9351:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9362:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9347:3:17"},"nodeType":"YulFunctionCall","src":"9347:18:17"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"9337:6:17","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9381:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9392:2:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9374:6:17"},"nodeType":"YulFunctionCall","src":"9374:21:17"},"nodeType":"YulExpressionStatement","src":"9374:21:17"},{"nodeType":"YulVariableDeclaration","src":"9404:17:17","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"9415:6:17"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"9408:3:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9430:27:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9450:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9444:5:17"},"nodeType":"YulFunctionCall","src":"9444:13:17"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9434:6:17","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"9473:6:17"},{"name":"length","nodeType":"YulIdentifier","src":"9481:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9466:6:17"},"nodeType":"YulFunctionCall","src":"9466:22:17"},"nodeType":"YulExpressionStatement","src":"9466:22:17"},{"nodeType":"YulVariableDeclaration","src":"9497:12:17","value":{"kind":"number","nodeType":"YulLiteral","src":"9507:2:17","type":"","value":"64"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9501:2:17","type":""}]},{"nodeType":"YulAssignment","src":"9518:25:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9529:9:17"},{"name":"_2","nodeType":"YulIdentifier","src":"9540:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9525:3:17"},"nodeType":"YulFunctionCall","src":"9525:18:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9518:3:17"}]},{"nodeType":"YulVariableDeclaration","src":"9552:29:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9570:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9578:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9566:3:17"},"nodeType":"YulFunctionCall","src":"9566:15:17"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"9556:6:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9590:13:17","value":{"name":"tail","nodeType":"YulIdentifier","src":"9599:4:17"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9594:1:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"9661:231:17","statements":[{"nodeType":"YulVariableDeclaration","src":"9675:23:17","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9691:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9685:5:17"},"nodeType":"YulFunctionCall","src":"9685:13:17"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"9679:2:17","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9718:3:17"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9729:2:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9723:5:17"},"nodeType":"YulFunctionCall","src":"9723:9:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9711:6:17"},"nodeType":"YulFunctionCall","src":"9711:22:17"},"nodeType":"YulExpressionStatement","src":"9711:22:17"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9757:3:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9762:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9753:3:17"},"nodeType":"YulFunctionCall","src":"9753:12:17"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9781:2:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9785:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9777:3:17"},"nodeType":"YulFunctionCall","src":"9777:11:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9771:5:17"},"nodeType":"YulFunctionCall","src":"9771:18:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9799:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9804:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9795:3:17"},"nodeType":"YulFunctionCall","src":"9795:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"9808:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9791:3:17"},"nodeType":"YulFunctionCall","src":"9791:19:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9767:3:17"},"nodeType":"YulFunctionCall","src":"9767:44:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9746:6:17"},"nodeType":"YulFunctionCall","src":"9746:66:17"},"nodeType":"YulExpressionStatement","src":"9746:66:17"},{"nodeType":"YulAssignment","src":"9825:19:17","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9836:3:17"},{"name":"_2","nodeType":"YulIdentifier","src":"9841:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9832:3:17"},"nodeType":"YulFunctionCall","src":"9832:12:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9825:3:17"}]},{"nodeType":"YulAssignment","src":"9857:25:17","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9871:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"9879:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9867:3:17"},"nodeType":"YulFunctionCall","src":"9867:15:17"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9857:6:17"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9623:1:17"},{"name":"length","nodeType":"YulIdentifier","src":"9626:6:17"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9620:2:17"},"nodeType":"YulFunctionCall","src":"9620:13:17"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9634:18:17","statements":[{"nodeType":"YulAssignment","src":"9636:14:17","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9645:1:17"},{"kind":"number","nodeType":"YulLiteral","src":"9648:1:17","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9641:3:17"},"nodeType":"YulFunctionCall","src":"9641:9:17"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9636:1:17"}]}]},"pre":{"nodeType":"YulBlock","src":"9616:3:17","statements":[]},"src":"9612:280:17"},{"nodeType":"YulAssignment","src":"9901:11:17","value":{"name":"pos","nodeType":"YulIdentifier","src":"9909:3:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9901:4:17"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_platform_$3582_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_platform_$3582_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9271:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9282:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9293:4:17","type":""}],"src":"9099:819:17"},{"body":{"nodeType":"YulBlock","src":"10126:648:17","statements":[{"nodeType":"YulVariableDeclaration","src":"10136:12:17","value":{"kind":"number","nodeType":"YulLiteral","src":"10146:2:17","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10140:2:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10157:32:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10175:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"10186:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10171:3:17"},"nodeType":"YulFunctionCall","src":"10171:18:17"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"10161:6:17","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10205:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"10216:2:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10198:6:17"},"nodeType":"YulFunctionCall","src":"10198:21:17"},"nodeType":"YulExpressionStatement","src":"10198:21:17"},{"nodeType":"YulVariableDeclaration","src":"10228:17:17","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"10239:6:17"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"10232:3:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10254:27:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10274:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10268:5:17"},"nodeType":"YulFunctionCall","src":"10268:13:17"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10258:6:17","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"10297:6:17"},{"name":"length","nodeType":"YulIdentifier","src":"10305:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10290:6:17"},"nodeType":"YulFunctionCall","src":"10290:22:17"},"nodeType":"YulExpressionStatement","src":"10290:22:17"},{"nodeType":"YulAssignment","src":"10321:25:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10332:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"10343:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10328:3:17"},"nodeType":"YulFunctionCall","src":"10328:18:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10321:3:17"}]},{"nodeType":"YulVariableDeclaration","src":"10355:54:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10377:9:17"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10392:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"10400:2:17"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10388:3:17"},"nodeType":"YulFunctionCall","src":"10388:15:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10373:3:17"},"nodeType":"YulFunctionCall","src":"10373:31:17"},{"kind":"number","nodeType":"YulLiteral","src":"10406:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10369:3:17"},"nodeType":"YulFunctionCall","src":"10369:40:17"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"10359:6:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10418:29:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10436:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"10444:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10432:3:17"},"nodeType":"YulFunctionCall","src":"10432:15:17"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"10422:6:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10456:13:17","value":{"name":"tail","nodeType":"YulIdentifier","src":"10465:4:17"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10460:1:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"10527:218:17","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10548:3:17"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"10561:6:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"10569:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10557:3:17"},"nodeType":"YulFunctionCall","src":"10557:22:17"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10585:2:17","type":"","value":"63"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10581:3:17"},"nodeType":"YulFunctionCall","src":"10581:7:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10553:3:17"},"nodeType":"YulFunctionCall","src":"10553:36:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10541:6:17"},"nodeType":"YulFunctionCall","src":"10541:49:17"},"nodeType":"YulExpressionStatement","src":"10541:49:17"},{"nodeType":"YulAssignment","src":"10603:62:17","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10649:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10643:5:17"},"nodeType":"YulFunctionCall","src":"10643:13:17"},{"name":"tail_2","nodeType":"YulIdentifier","src":"10658:6:17"}],"functionName":{"name":"abi_encode_t_struct$_provider","nodeType":"YulIdentifier","src":"10613:29:17"},"nodeType":"YulFunctionCall","src":"10613:52:17"},"variableNames":[{"name":"tail_2","nodeType":"YulIdentifier","src":"10603:6:17"}]},{"nodeType":"YulAssignment","src":"10678:25:17","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10692:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"10700:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10688:3:17"},"nodeType":"YulFunctionCall","src":"10688:15:17"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10678:6:17"}]},{"nodeType":"YulAssignment","src":"10716:19:17","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10727:3:17"},{"name":"_1","nodeType":"YulIdentifier","src":"10732:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10723:3:17"},"nodeType":"YulFunctionCall","src":"10723:12:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10716:3:17"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10489:1:17"},{"name":"length","nodeType":"YulIdentifier","src":"10492:6:17"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10486:2:17"},"nodeType":"YulFunctionCall","src":"10486:13:17"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10500:18:17","statements":[{"nodeType":"YulAssignment","src":"10502:14:17","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10511:1:17"},{"kind":"number","nodeType":"YulLiteral","src":"10514:1:17","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10507:3:17"},"nodeType":"YulFunctionCall","src":"10507:9:17"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10502:1:17"}]}]},"pre":{"nodeType":"YulBlock","src":"10482:3:17","statements":[]},"src":"10478:267:17"},{"nodeType":"YulAssignment","src":"10754:14:17","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"10762:6:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10754:4:17"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_provider_$3592_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_provider_$3592_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10095:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10106:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10117:4:17","type":""}],"src":"9923:851:17"},{"body":{"nodeType":"YulBlock","src":"10976:648:17","statements":[{"nodeType":"YulVariableDeclaration","src":"10986:12:17","value":{"kind":"number","nodeType":"YulLiteral","src":"10996:2:17","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10990:2:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11007:32:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11025:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"11036:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11021:3:17"},"nodeType":"YulFunctionCall","src":"11021:18:17"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"11011:6:17","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11055:9:17"},{"name":"_1","nodeType":"YulIdentifier","src":"11066:2:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11048:6:17"},"nodeType":"YulFunctionCall","src":"11048:21:17"},"nodeType":"YulExpressionStatement","src":"11048:21:17"},{"nodeType":"YulVariableDeclaration","src":"11078:17:17","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"11089:6:17"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"11082:3:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11104:27:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11124:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11118:5:17"},"nodeType":"YulFunctionCall","src":"11118:13:17"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11108:6:17","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"11147:6:17"},{"name":"length","nodeType":"YulIdentifier","src":"11155:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11140:6:17"},"nodeType":"YulFunctionCall","src":"11140:22:17"},"nodeType":"YulExpressionStatement","src":"11140:22:17"},{"nodeType":"YulAssignment","src":"11171:25:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11182:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"11193:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11178:3:17"},"nodeType":"YulFunctionCall","src":"11178:18:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11171:3:17"}]},{"nodeType":"YulVariableDeclaration","src":"11205:54:17","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11227:9:17"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11242:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"11250:2:17"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"11238:3:17"},"nodeType":"YulFunctionCall","src":"11238:15:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11223:3:17"},"nodeType":"YulFunctionCall","src":"11223:31:17"},{"kind":"number","nodeType":"YulLiteral","src":"11256:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11219:3:17"},"nodeType":"YulFunctionCall","src":"11219:40:17"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"11209:6:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11268:29:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11286:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"11294:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11282:3:17"},"nodeType":"YulFunctionCall","src":"11282:15:17"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"11272:6:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11306:13:17","value":{"name":"tail","nodeType":"YulIdentifier","src":"11315:4:17"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11310:1:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"11377:218:17","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11398:3:17"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"11411:6:17"},{"name":"headStart","nodeType":"YulIdentifier","src":"11419:9:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11407:3:17"},"nodeType":"YulFunctionCall","src":"11407:22:17"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11435:2:17","type":"","value":"63"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11431:3:17"},"nodeType":"YulFunctionCall","src":"11431:7:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11403:3:17"},"nodeType":"YulFunctionCall","src":"11403:36:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11391:6:17"},"nodeType":"YulFunctionCall","src":"11391:49:17"},"nodeType":"YulExpressionStatement","src":"11391:49:17"},{"nodeType":"YulAssignment","src":"11453:62:17","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11499:6:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11493:5:17"},"nodeType":"YulFunctionCall","src":"11493:13:17"},{"name":"tail_2","nodeType":"YulIdentifier","src":"11508:6:17"}],"functionName":{"name":"abi_encode_t_struct$_provider","nodeType":"YulIdentifier","src":"11463:29:17"},"nodeType":"YulFunctionCall","src":"11463:52:17"},"variableNames":[{"name":"tail_2","nodeType":"YulIdentifier","src":"11453:6:17"}]},{"nodeType":"YulAssignment","src":"11528:25:17","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11542:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"11550:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11538:3:17"},"nodeType":"YulFunctionCall","src":"11538:15:17"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11528:6:17"}]},{"nodeType":"YulAssignment","src":"11566:19:17","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11577:3:17"},{"name":"_1","nodeType":"YulIdentifier","src":"11582:2:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11573:3:17"},"nodeType":"YulFunctionCall","src":"11573:12:17"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11566:3:17"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11339:1:17"},{"name":"length","nodeType":"YulIdentifier","src":"11342:6:17"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11336:2:17"},"nodeType":"YulFunctionCall","src":"11336:13:17"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11350:18:17","statements":[{"nodeType":"YulAssignment","src":"11352:14:17","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11361:1:17"},{"kind":"number","nodeType":"YulLiteral","src":"11364:1:17","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11357:3:17"},"nodeType":"YulFunctionCall","src":"11357:9:17"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"11352:1:17"}]}]},"pre":{"nodeType":"YulBlock","src":"11332:3:17","statements":[]},"src":"11328:267:17"},{"nodeType":"YulAssignment","src":"11604:14:17","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"11612:6:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11604:4:17"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_token_$3587_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_token_$3587_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10945:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10956:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10967:4:17","type":""}],"src":"10779:845:17"},{"body":{"nodeType":"YulBlock","src":"11724:92:17","statements":[{"nodeType":"YulAssignment","src":"11734:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11746:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"11757:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11742:3:17"},"nodeType":"YulFunctionCall","src":"11742:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11734:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11776:9:17"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11801:6:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11794:6:17"},"nodeType":"YulFunctionCall","src":"11794:14:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11787:6:17"},"nodeType":"YulFunctionCall","src":"11787:22:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11769:6:17"},"nodeType":"YulFunctionCall","src":"11769:41:17"},"nodeType":"YulExpressionStatement","src":"11769:41:17"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11693:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11704:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11715:4:17","type":""}],"src":"11629:187:17"},{"body":{"nodeType":"YulBlock","src":"11922:76:17","statements":[{"nodeType":"YulAssignment","src":"11932:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11944:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"11955:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11940:3:17"},"nodeType":"YulFunctionCall","src":"11940:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11932:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11974:9:17"},{"name":"value0","nodeType":"YulIdentifier","src":"11985:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11967:6:17"},"nodeType":"YulFunctionCall","src":"11967:25:17"},"nodeType":"YulExpressionStatement","src":"11967:25:17"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11891:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11902:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11913:4:17","type":""}],"src":"11821:177:17"},{"body":{"nodeType":"YulBlock","src":"12124:101:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12141:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12152:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12134:6:17"},"nodeType":"YulFunctionCall","src":"12134:21:17"},"nodeType":"YulExpressionStatement","src":"12134:21:17"},{"nodeType":"YulAssignment","src":"12164:55:17","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12192:6:17"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12204:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12215:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12200:3:17"},"nodeType":"YulFunctionCall","src":"12200:18:17"}],"functionName":{"name":"abi_encode_t_string","nodeType":"YulIdentifier","src":"12172:19:17"},"nodeType":"YulFunctionCall","src":"12172:47:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12164:4:17"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12093:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12104:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12115:4:17","type":""}],"src":"12003:222:17"},{"body":{"nodeType":"YulBlock","src":"12404:170:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12421:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12432:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12414:6:17"},"nodeType":"YulFunctionCall","src":"12414:21:17"},"nodeType":"YulExpressionStatement","src":"12414:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12455:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12466:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12451:3:17"},"nodeType":"YulFunctionCall","src":"12451:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"12471:2:17","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12444:6:17"},"nodeType":"YulFunctionCall","src":"12444:30:17"},"nodeType":"YulExpressionStatement","src":"12444:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12494:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12505:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12490:3:17"},"nodeType":"YulFunctionCall","src":"12490:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"12510:22:17","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12483:6:17"},"nodeType":"YulFunctionCall","src":"12483:50:17"},"nodeType":"YulExpressionStatement","src":"12483:50:17"},{"nodeType":"YulAssignment","src":"12542:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12554:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12565:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12550:3:17"},"nodeType":"YulFunctionCall","src":"12550:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12542:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12381:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12395:4:17","type":""}],"src":"12230:344:17"},{"body":{"nodeType":"YulBlock","src":"12753:228:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12770:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12781:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12763:6:17"},"nodeType":"YulFunctionCall","src":"12763:21:17"},"nodeType":"YulExpressionStatement","src":"12763:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12804:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12815:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12800:3:17"},"nodeType":"YulFunctionCall","src":"12800:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"12820:2:17","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12793:6:17"},"nodeType":"YulFunctionCall","src":"12793:30:17"},"nodeType":"YulExpressionStatement","src":"12793:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12843:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12854:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12839:3:17"},"nodeType":"YulFunctionCall","src":"12839:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"12859:34:17","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12832:6:17"},"nodeType":"YulFunctionCall","src":"12832:62:17"},"nodeType":"YulExpressionStatement","src":"12832:62:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12914:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12925:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12910:3:17"},"nodeType":"YulFunctionCall","src":"12910:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"12930:8:17","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12903:6:17"},"nodeType":"YulFunctionCall","src":"12903:36:17"},"nodeType":"YulExpressionStatement","src":"12903:36:17"},{"nodeType":"YulAssignment","src":"12948:27:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12960:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"12971:3:17","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12956:3:17"},"nodeType":"YulFunctionCall","src":"12956:19:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12948:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12730:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12744:4:17","type":""}],"src":"12579:402:17"},{"body":{"nodeType":"YulBlock","src":"13160:165:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13177:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13188:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13170:6:17"},"nodeType":"YulFunctionCall","src":"13170:21:17"},"nodeType":"YulExpressionStatement","src":"13170:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13211:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13222:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13207:3:17"},"nodeType":"YulFunctionCall","src":"13207:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"13227:2:17","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13200:6:17"},"nodeType":"YulFunctionCall","src":"13200:30:17"},"nodeType":"YulExpressionStatement","src":"13200:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13250:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13261:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13246:3:17"},"nodeType":"YulFunctionCall","src":"13246:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"13266:17:17","type":"","value":"Transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13239:6:17"},"nodeType":"YulFunctionCall","src":"13239:45:17"},"nodeType":"YulExpressionStatement","src":"13239:45:17"},{"nodeType":"YulAssignment","src":"13293:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13305:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13316:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13301:3:17"},"nodeType":"YulFunctionCall","src":"13301:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13293:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13137:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13151:4:17","type":""}],"src":"12986:339:17"},{"body":{"nodeType":"YulBlock","src":"13504:179:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13521:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13532:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13514:6:17"},"nodeType":"YulFunctionCall","src":"13514:21:17"},"nodeType":"YulExpressionStatement","src":"13514:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13555:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13566:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13551:3:17"},"nodeType":"YulFunctionCall","src":"13551:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"13571:2:17","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13544:6:17"},"nodeType":"YulFunctionCall","src":"13544:30:17"},"nodeType":"YulExpressionStatement","src":"13544:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13594:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13605:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13590:3:17"},"nodeType":"YulFunctionCall","src":"13590:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"13610:31:17","type":"","value":"Locked to prevent renentrancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13583:6:17"},"nodeType":"YulFunctionCall","src":"13583:59:17"},"nodeType":"YulExpressionStatement","src":"13583:59:17"},{"nodeType":"YulAssignment","src":"13651:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13663:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13674:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13659:3:17"},"nodeType":"YulFunctionCall","src":"13659:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13651:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13481:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13495:4:17","type":""}],"src":"13330:353:17"},{"body":{"nodeType":"YulBlock","src":"13862:167:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13879:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13890:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13872:6:17"},"nodeType":"YulFunctionCall","src":"13872:21:17"},"nodeType":"YulExpressionStatement","src":"13872:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13913:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13924:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13909:3:17"},"nodeType":"YulFunctionCall","src":"13909:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"13929:2:17","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13902:6:17"},"nodeType":"YulFunctionCall","src":"13902:30:17"},"nodeType":"YulExpressionStatement","src":"13902:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13952:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"13963:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13948:3:17"},"nodeType":"YulFunctionCall","src":"13948:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"13968:19:17","type":"","value":"Unsupported token"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13941:6:17"},"nodeType":"YulFunctionCall","src":"13941:47:17"},"nodeType":"YulExpressionStatement","src":"13941:47:17"},{"nodeType":"YulAssignment","src":"13997:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14009:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14020:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14005:3:17"},"nodeType":"YulFunctionCall","src":"14005:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13997:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_35557054842e6bac2d5677ccc2aeb32b43981809d9c333559406d70b18885a3e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13839:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13853:4:17","type":""}],"src":"13688:341:17"},{"body":{"nodeType":"YulBlock","src":"14208:170:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14225:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14236:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14218:6:17"},"nodeType":"YulFunctionCall","src":"14218:21:17"},"nodeType":"YulExpressionStatement","src":"14218:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14259:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14270:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14255:3:17"},"nodeType":"YulFunctionCall","src":"14255:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"14275:2:17","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14248:6:17"},"nodeType":"YulFunctionCall","src":"14248:30:17"},"nodeType":"YulExpressionStatement","src":"14248:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14298:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14309:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14294:3:17"},"nodeType":"YulFunctionCall","src":"14294:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"14314:22:17","type":"","value":"Insufficient balance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14287:6:17"},"nodeType":"YulFunctionCall","src":"14287:50:17"},"nodeType":"YulExpressionStatement","src":"14287:50:17"},{"nodeType":"YulAssignment","src":"14346:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14358:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14369:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14354:3:17"},"nodeType":"YulFunctionCall","src":"14354:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14346:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14185:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14199:4:17","type":""}],"src":"14034:344:17"},{"body":{"nodeType":"YulBlock","src":"14557:174:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14574:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14585:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14567:6:17"},"nodeType":"YulFunctionCall","src":"14567:21:17"},"nodeType":"YulExpressionStatement","src":"14567:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14608:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14619:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14604:3:17"},"nodeType":"YulFunctionCall","src":"14604:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"14624:2:17","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14597:6:17"},"nodeType":"YulFunctionCall","src":"14597:30:17"},"nodeType":"YulExpressionStatement","src":"14597:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14647:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14658:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14643:3:17"},"nodeType":"YulFunctionCall","src":"14643:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"14663:26:17","type":"","value":"Contract in paused state"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14636:6:17"},"nodeType":"YulFunctionCall","src":"14636:54:17"},"nodeType":"YulExpressionStatement","src":"14636:54:17"},{"nodeType":"YulAssignment","src":"14699:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14711:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14722:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14707:3:17"},"nodeType":"YulFunctionCall","src":"14707:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14699:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14534:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14548:4:17","type":""}],"src":"14383:348:17"},{"body":{"nodeType":"YulBlock","src":"14910:166:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14927:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14938:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14920:6:17"},"nodeType":"YulFunctionCall","src":"14920:21:17"},"nodeType":"YulExpressionStatement","src":"14920:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14961:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"14972:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14957:3:17"},"nodeType":"YulFunctionCall","src":"14957:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"14977:2:17","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14950:6:17"},"nodeType":"YulFunctionCall","src":"14950:30:17"},"nodeType":"YulExpressionStatement","src":"14950:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15000:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15011:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14996:3:17"},"nodeType":"YulFunctionCall","src":"14996:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"15016:18:17","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14989:6:17"},"nodeType":"YulFunctionCall","src":"14989:46:17"},"nodeType":"YulExpressionStatement","src":"14989:46:17"},{"nodeType":"YulAssignment","src":"15044:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15056:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15067:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15052:3:17"},"nodeType":"YulFunctionCall","src":"15052:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15044:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14887:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14901:4:17","type":""}],"src":"14736:340:17"},{"body":{"nodeType":"YulBlock","src":"15255:169:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15272:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15283:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15265:6:17"},"nodeType":"YulFunctionCall","src":"15265:21:17"},"nodeType":"YulExpressionStatement","src":"15265:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15306:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15317:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15302:3:17"},"nodeType":"YulFunctionCall","src":"15302:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"15322:2:17","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15295:6:17"},"nodeType":"YulFunctionCall","src":"15295:30:17"},"nodeType":"YulExpressionStatement","src":"15295:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15345:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15356:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15341:3:17"},"nodeType":"YulFunctionCall","src":"15341:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"15361:21:17","type":"","value":"Unauthorized oracle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15334:6:17"},"nodeType":"YulFunctionCall","src":"15334:49:17"},"nodeType":"YulExpressionStatement","src":"15334:49:17"},{"nodeType":"YulAssignment","src":"15392:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15404:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15415:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15400:3:17"},"nodeType":"YulFunctionCall","src":"15400:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15392:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_6bcd345f4c7b73f5cd4feebd39cb3befed09360f28038e7e668a1b391b719f4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15232:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15246:4:17","type":""}],"src":"15081:343:17"},{"body":{"nodeType":"YulBlock","src":"15603:182:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15620:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15631:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15613:6:17"},"nodeType":"YulFunctionCall","src":"15613:21:17"},"nodeType":"YulExpressionStatement","src":"15613:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15654:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15665:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15650:3:17"},"nodeType":"YulFunctionCall","src":"15650:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"15670:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15643:6:17"},"nodeType":"YulFunctionCall","src":"15643:30:17"},"nodeType":"YulExpressionStatement","src":"15643:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15693:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15704:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15689:3:17"},"nodeType":"YulFunctionCall","src":"15689:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"15709:34:17","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15682:6:17"},"nodeType":"YulFunctionCall","src":"15682:62:17"},"nodeType":"YulExpressionStatement","src":"15682:62:17"},{"nodeType":"YulAssignment","src":"15753:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15765:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15776:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15761:3:17"},"nodeType":"YulFunctionCall","src":"15761:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15753:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15580:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15594:4:17","type":""}],"src":"15429:356:17"},{"body":{"nodeType":"YulBlock","src":"15964:163:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15981:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"15992:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15974:6:17"},"nodeType":"YulFunctionCall","src":"15974:21:17"},"nodeType":"YulExpressionStatement","src":"15974:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16015:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16026:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16011:3:17"},"nodeType":"YulFunctionCall","src":"16011:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"16031:2:17","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16004:6:17"},"nodeType":"YulFunctionCall","src":"16004:30:17"},"nodeType":"YulExpressionStatement","src":"16004:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16054:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16065:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16050:3:17"},"nodeType":"YulFunctionCall","src":"16050:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"16070:15:17","type":"","value":"Zero eth sent"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16043:6:17"},"nodeType":"YulFunctionCall","src":"16043:43:17"},"nodeType":"YulExpressionStatement","src":"16043:43:17"},{"nodeType":"YulAssignment","src":"16095:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16107:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16118:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16103:3:17"},"nodeType":"YulFunctionCall","src":"16103:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16095:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15941:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15955:4:17","type":""}],"src":"15790:337:17"},{"body":{"nodeType":"YulBlock","src":"16306:172:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16323:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16334:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16316:6:17"},"nodeType":"YulFunctionCall","src":"16316:21:17"},"nodeType":"YulExpressionStatement","src":"16316:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16357:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16368:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16353:3:17"},"nodeType":"YulFunctionCall","src":"16353:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"16373:2:17","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16346:6:17"},"nodeType":"YulFunctionCall","src":"16346:30:17"},"nodeType":"YulExpressionStatement","src":"16346:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16396:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16407:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16392:3:17"},"nodeType":"YulFunctionCall","src":"16392:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"16412:24:17","type":"","value":"Unauthorized treasurer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16385:6:17"},"nodeType":"YulFunctionCall","src":"16385:52:17"},"nodeType":"YulExpressionStatement","src":"16385:52:17"},{"nodeType":"YulAssignment","src":"16446:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16458:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16469:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16454:3:17"},"nodeType":"YulFunctionCall","src":"16454:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16446:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_9e27cf84062ca3c0af9382af6cdd258fd123bdb3418633ba1a4dde9e29d5d3b7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16283:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16297:4:17","type":""}],"src":"16132:346:17"},{"body":{"nodeType":"YulBlock","src":"16657:169:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16674:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16685:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16667:6:17"},"nodeType":"YulFunctionCall","src":"16667:21:17"},"nodeType":"YulExpressionStatement","src":"16667:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16708:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16719:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16704:3:17"},"nodeType":"YulFunctionCall","src":"16704:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"16724:2:17","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16697:6:17"},"nodeType":"YulFunctionCall","src":"16697:30:17"},"nodeType":"YulExpressionStatement","src":"16697:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16747:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16758:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16743:3:17"},"nodeType":"YulFunctionCall","src":"16743:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"16763:21:17","type":"","value":"Unauthorized sender"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16736:6:17"},"nodeType":"YulFunctionCall","src":"16736:49:17"},"nodeType":"YulExpressionStatement","src":"16736:49:17"},{"nodeType":"YulAssignment","src":"16794:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16806:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"16817:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16802:3:17"},"nodeType":"YulFunctionCall","src":"16802:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16794:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1e59d7b97f0680349c22289f1e4dd68175c3de2e3155f54bf05a002152968c5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16634:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16648:4:17","type":""}],"src":"16483:343:17"},{"body":{"nodeType":"YulBlock","src":"17005:179:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17022:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17033:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17015:6:17"},"nodeType":"YulFunctionCall","src":"17015:21:17"},"nodeType":"YulExpressionStatement","src":"17015:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17056:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17067:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17052:3:17"},"nodeType":"YulFunctionCall","src":"17052:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"17072:2:17","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17045:6:17"},"nodeType":"YulFunctionCall","src":"17045:30:17"},"nodeType":"YulExpressionStatement","src":"17045:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17095:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17106:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17091:3:17"},"nodeType":"YulFunctionCall","src":"17091:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"17111:31:17","type":"","value":"Liquidity pool does not exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17084:6:17"},"nodeType":"YulFunctionCall","src":"17084:59:17"},"nodeType":"YulExpressionStatement","src":"17084:59:17"},{"nodeType":"YulAssignment","src":"17152:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17164:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17175:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17160:3:17"},"nodeType":"YulFunctionCall","src":"17160:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17152:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_a7488aed9efb581ec025bbf34f5cf87ffa2431375dd8982219b303742d3d79ce__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16982:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16996:4:17","type":""}],"src":"16831:353:17"},{"body":{"nodeType":"YulBlock","src":"17363:178:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17380:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17391:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17373:6:17"},"nodeType":"YulFunctionCall","src":"17373:21:17"},"nodeType":"YulExpressionStatement","src":"17373:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17414:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17425:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17410:3:17"},"nodeType":"YulFunctionCall","src":"17410:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"17430:2:17","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17403:6:17"},"nodeType":"YulFunctionCall","src":"17403:30:17"},"nodeType":"YulExpressionStatement","src":"17403:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17453:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17464:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17449:3:17"},"nodeType":"YulFunctionCall","src":"17449:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"17469:30:17","type":"","value":"Subscription window breached"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17442:6:17"},"nodeType":"YulFunctionCall","src":"17442:58:17"},"nodeType":"YulExpressionStatement","src":"17442:58:17"},{"nodeType":"YulAssignment","src":"17509:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17521:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17532:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17517:3:17"},"nodeType":"YulFunctionCall","src":"17517:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17509:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17340:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17354:4:17","type":""}],"src":"17189:352:17"},{"body":{"nodeType":"YulBlock","src":"17720:178:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17737:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17748:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17730:6:17"},"nodeType":"YulFunctionCall","src":"17730:21:17"},"nodeType":"YulExpressionStatement","src":"17730:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17771:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17782:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17767:3:17"},"nodeType":"YulFunctionCall","src":"17767:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"17787:2:17","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17760:6:17"},"nodeType":"YulFunctionCall","src":"17760:30:17"},"nodeType":"YulExpressionStatement","src":"17760:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17810:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17821:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17806:3:17"},"nodeType":"YulFunctionCall","src":"17806:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"17826:30:17","type":"","value":"Locked to prevent reentrancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17799:6:17"},"nodeType":"YulFunctionCall","src":"17799:58:17"},"nodeType":"YulExpressionStatement","src":"17799:58:17"},{"nodeType":"YulAssignment","src":"17866:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17878:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"17889:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17874:3:17"},"nodeType":"YulFunctionCall","src":"17874:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17866:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17697:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17711:4:17","type":""}],"src":"17546:352:17"},{"body":{"nodeType":"YulBlock","src":"18077:176:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18094:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18105:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18087:6:17"},"nodeType":"YulFunctionCall","src":"18087:21:17"},"nodeType":"YulExpressionStatement","src":"18087:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18128:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18139:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18124:3:17"},"nodeType":"YulFunctionCall","src":"18124:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"18144:2:17","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18117:6:17"},"nodeType":"YulFunctionCall","src":"18117:30:17"},"nodeType":"YulExpressionStatement","src":"18117:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18167:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18178:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18163:3:17"},"nodeType":"YulFunctionCall","src":"18163:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"18183:28:17","type":"","value":"Locked to avoid reentrancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18156:6:17"},"nodeType":"YulFunctionCall","src":"18156:56:17"},"nodeType":"YulExpressionStatement","src":"18156:56:17"},{"nodeType":"YulAssignment","src":"18221:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18233:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18244:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18229:3:17"},"nodeType":"YulFunctionCall","src":"18229:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18221:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_ceaa3b02d373c2ad73562e084b288c6a1deb5ca6fad548fa2aff492271ebb58d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18054:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18068:4:17","type":""}],"src":"17903:350:17"},{"body":{"nodeType":"YulBlock","src":"18432:172:17","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18449:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18460:2:17","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18442:6:17"},"nodeType":"YulFunctionCall","src":"18442:21:17"},"nodeType":"YulExpressionStatement","src":"18442:21:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18483:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18494:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18479:3:17"},"nodeType":"YulFunctionCall","src":"18479:18:17"},{"kind":"number","nodeType":"YulLiteral","src":"18499:2:17","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18472:6:17"},"nodeType":"YulFunctionCall","src":"18472:30:17"},"nodeType":"YulExpressionStatement","src":"18472:30:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18522:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18533:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18518:3:17"},"nodeType":"YulFunctionCall","src":"18518:18:17"},{"kind":"string","nodeType":"YulLiteral","src":"18538:24:17","type":"","value":"Manager does not exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18511:6:17"},"nodeType":"YulFunctionCall","src":"18511:52:17"},"nodeType":"YulExpressionStatement","src":"18511:52:17"},{"nodeType":"YulAssignment","src":"18572:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18584:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18595:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18580:3:17"},"nodeType":"YulFunctionCall","src":"18580:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18572:4:17"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18409:9:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18423:4:17","type":""}],"src":"18258:346:17"},{"body":{"nodeType":"YulBlock","src":"18710:76:17","statements":[{"nodeType":"YulAssignment","src":"18720:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18732:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18743:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18728:3:17"},"nodeType":"YulFunctionCall","src":"18728:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18720:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18762:9:17"},{"name":"value0","nodeType":"YulIdentifier","src":"18773:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18755:6:17"},"nodeType":"YulFunctionCall","src":"18755:25:17"},"nodeType":"YulExpressionStatement","src":"18755:25:17"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18679:9:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18690:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18701:4:17","type":""}],"src":"18609:177:17"},{"body":{"nodeType":"YulBlock","src":"18948:218:17","statements":[{"nodeType":"YulAssignment","src":"18958:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18970:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"18981:2:17","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18966:3:17"},"nodeType":"YulFunctionCall","src":"18966:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18958:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19000:9:17"},{"name":"value0","nodeType":"YulIdentifier","src":"19011:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18993:6:17"},"nodeType":"YulFunctionCall","src":"18993:25:17"},"nodeType":"YulExpressionStatement","src":"18993:25:17"},{"nodeType":"YulVariableDeclaration","src":"19027:29:17","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19045:3:17","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19050:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19041:3:17"},"nodeType":"YulFunctionCall","src":"19041:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"19054:1:17","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19037:3:17"},"nodeType":"YulFunctionCall","src":"19037:19:17"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19031:2:17","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19076:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"19087:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19072:3:17"},"nodeType":"YulFunctionCall","src":"19072:18:17"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19096:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"19104:2:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19092:3:17"},"nodeType":"YulFunctionCall","src":"19092:15:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19065:6:17"},"nodeType":"YulFunctionCall","src":"19065:43:17"},"nodeType":"YulExpressionStatement","src":"19065:43:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19128:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"19139:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19124:3:17"},"nodeType":"YulFunctionCall","src":"19124:18:17"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19148:6:17"},{"name":"_1","nodeType":"YulIdentifier","src":"19156:2:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19144:3:17"},"nodeType":"YulFunctionCall","src":"19144:15:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19117:6:17"},"nodeType":"YulFunctionCall","src":"19117:43:17"},"nodeType":"YulExpressionStatement","src":"19117:43:17"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18901:9:17","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18912:6:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18920:6:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18928:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18939:4:17","type":""}],"src":"18791:375:17"},{"body":{"nodeType":"YulBlock","src":"19300:119:17","statements":[{"nodeType":"YulAssignment","src":"19310:26:17","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19322:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"19333:2:17","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19318:3:17"},"nodeType":"YulFunctionCall","src":"19318:18:17"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19310:4:17"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19352:9:17"},{"name":"value0","nodeType":"YulIdentifier","src":"19363:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19345:6:17"},"nodeType":"YulFunctionCall","src":"19345:25:17"},"nodeType":"YulExpressionStatement","src":"19345:25:17"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19390:9:17"},{"kind":"number","nodeType":"YulLiteral","src":"19401:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19386:3:17"},"nodeType":"YulFunctionCall","src":"19386:18:17"},{"name":"value1","nodeType":"YulIdentifier","src":"19406:6:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19379:6:17"},"nodeType":"YulFunctionCall","src":"19379:34:17"},"nodeType":"YulExpressionStatement","src":"19379:34:17"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19261:9:17","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19272:6:17","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19280:6:17","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19291:4:17","type":""}],"src":"19171:248:17"},{"body":{"nodeType":"YulBlock","src":"19468:207:17","statements":[{"nodeType":"YulAssignment","src":"19478:19:17","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19494:2:17","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19488:5:17"},"nodeType":"YulFunctionCall","src":"19488:9:17"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"19478:6:17"}]},{"nodeType":"YulVariableDeclaration","src":"19506:35:17","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"19528:6:17"},{"name":"size","nodeType":"YulIdentifier","src":"19536:4:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19524:3:17"},"nodeType":"YulFunctionCall","src":"19524:17:17"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"19510:10:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"19616:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"19618:16:17"},"nodeType":"YulFunctionCall","src":"19618:18:17"},"nodeType":"YulExpressionStatement","src":"19618:18:17"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19559:10:17"},{"kind":"number","nodeType":"YulLiteral","src":"19571:18:17","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19556:2:17"},"nodeType":"YulFunctionCall","src":"19556:34:17"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19595:10:17"},{"name":"memPtr","nodeType":"YulIdentifier","src":"19607:6:17"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19592:2:17"},"nodeType":"YulFunctionCall","src":"19592:22:17"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"19553:2:17"},"nodeType":"YulFunctionCall","src":"19553:62:17"},"nodeType":"YulIf","src":"19550:2:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19654:2:17","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19658:10:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19647:6:17"},"nodeType":"YulFunctionCall","src":"19647:22:17"},"nodeType":"YulExpressionStatement","src":"19647:22:17"}]},"name":"allocateMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"19448:4:17","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"19457:6:17","type":""}],"src":"19424:251:17"},{"body":{"nodeType":"YulBlock","src":"19740:131:17","statements":[{"body":{"nodeType":"YulBlock","src":"19784:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"19786:16:17"},"nodeType":"YulFunctionCall","src":"19786:18:17"},"nodeType":"YulExpressionStatement","src":"19786:18:17"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"19756:6:17"},{"kind":"number","nodeType":"YulLiteral","src":"19764:18:17","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19753:2:17"},"nodeType":"YulFunctionCall","src":"19753:30:17"},"nodeType":"YulIf","src":"19750:2:17"},{"nodeType":"YulAssignment","src":"19815:50:17","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"19835:6:17"},{"kind":"number","nodeType":"YulLiteral","src":"19843:4:17","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19831:3:17"},"nodeType":"YulFunctionCall","src":"19831:17:17"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19854:2:17","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19850:3:17"},"nodeType":"YulFunctionCall","src":"19850:7:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19827:3:17"},"nodeType":"YulFunctionCall","src":"19827:31:17"},{"kind":"number","nodeType":"YulLiteral","src":"19860:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19823:3:17"},"nodeType":"YulFunctionCall","src":"19823:42:17"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"19815:4:17"}]}]},"name":"array_allocation_size_t_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"19720:6:17","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"19731:4:17","type":""}],"src":"19680:191:17"},{"body":{"nodeType":"YulBlock","src":"19924:80:17","statements":[{"body":{"nodeType":"YulBlock","src":"19951:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19953:16:17"},"nodeType":"YulFunctionCall","src":"19953:18:17"},"nodeType":"YulExpressionStatement","src":"19953:18:17"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19940:1:17"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"19947:1:17"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19943:3:17"},"nodeType":"YulFunctionCall","src":"19943:6:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19937:2:17"},"nodeType":"YulFunctionCall","src":"19937:13:17"},"nodeType":"YulIf","src":"19934:2:17"},{"nodeType":"YulAssignment","src":"19982:16:17","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19993:1:17"},{"name":"y","nodeType":"YulIdentifier","src":"19996:1:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19989:3:17"},"nodeType":"YulFunctionCall","src":"19989:9:17"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"19982:3:17"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19907:1:17","type":""},{"name":"y","nodeType":"YulTypedName","src":"19910:1:17","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"19916:3:17","type":""}],"src":"19876:128:17"},{"body":{"nodeType":"YulBlock","src":"20055:171:17","statements":[{"body":{"nodeType":"YulBlock","src":"20086:111:17","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"20107:1:17"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20114:3:17","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20119:10:17","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20110:3:17"},"nodeType":"YulFunctionCall","src":"20110:20:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20100:6:17"},"nodeType":"YulFunctionCall","src":"20100:31:17"},"nodeType":"YulExpressionStatement","src":"20100:31:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20151:1:17","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20154:4:17","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20144:6:17"},"nodeType":"YulFunctionCall","src":"20144:15:17"},"nodeType":"YulExpressionStatement","src":"20144:15:17"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"20179:1:17"},{"kind":"number","nodeType":"YulLiteral","src":"20182:4:17","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20172:6:17"},"nodeType":"YulFunctionCall","src":"20172:15:17"},"nodeType":"YulExpressionStatement","src":"20172:15:17"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20075:1:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20068:6:17"},"nodeType":"YulFunctionCall","src":"20068:9:17"},"nodeType":"YulIf","src":"20065:2:17"},{"nodeType":"YulAssignment","src":"20206:14:17","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20215:1:17"},{"name":"y","nodeType":"YulIdentifier","src":"20218:1:17"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"20211:3:17"},"nodeType":"YulFunctionCall","src":"20211:9:17"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"20206:1:17"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20040:1:17","type":""},{"name":"y","nodeType":"YulTypedName","src":"20043:1:17","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"20049:1:17","type":""}],"src":"20009:217:17"},{"body":{"nodeType":"YulBlock","src":"20308:376:17","statements":[{"nodeType":"YulAssignment","src":"20318:15:17","value":{"name":"_power","nodeType":"YulIdentifier","src":"20327:6:17"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"20318:5:17"}]},{"nodeType":"YulAssignment","src":"20342:13:17","value":{"name":"_base","nodeType":"YulIdentifier","src":"20350:5:17"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"20342:4:17"}]},{"body":{"nodeType":"YulBlock","src":"20389:289:17","statements":[{"nodeType":"YulVariableDeclaration","src":"20403:11:17","value":{"kind":"number","nodeType":"YulLiteral","src":"20413:1:17","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20407:2:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"20455:9:17","statements":[{"nodeType":"YulBreak","src":"20457:5:17"}]},"condition":{"arguments":[{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"20440:8:17"},{"name":"_1","nodeType":"YulIdentifier","src":"20450:2:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20437:2:17"},"nodeType":"YulFunctionCall","src":"20437:16:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20430:6:17"},"nodeType":"YulFunctionCall","src":"20430:24:17"},"nodeType":"YulIf","src":"20427:2:17"},{"body":{"nodeType":"YulBlock","src":"20505:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20507:16:17"},"nodeType":"YulFunctionCall","src":"20507:18:17"},"nodeType":"YulExpressionStatement","src":"20507:18:17"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"20483:4:17"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"20493:3:17"},{"name":"base","nodeType":"YulIdentifier","src":"20498:4:17"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"20489:3:17"},"nodeType":"YulFunctionCall","src":"20489:14:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20480:2:17"},"nodeType":"YulFunctionCall","src":"20480:24:17"},"nodeType":"YulIf","src":"20477:2:17"},{"body":{"nodeType":"YulBlock","src":"20561:29:17","statements":[{"nodeType":"YulAssignment","src":"20563:25:17","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"20576:5:17"},{"name":"base","nodeType":"YulIdentifier","src":"20583:4:17"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"20572:3:17"},"nodeType":"YulFunctionCall","src":"20572:16:17"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"20563:5:17"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"20547:8:17"},{"name":"_1","nodeType":"YulIdentifier","src":"20557:2:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20543:3:17"},"nodeType":"YulFunctionCall","src":"20543:17:17"},"nodeType":"YulIf","src":"20540:2:17"},{"nodeType":"YulAssignment","src":"20603:23:17","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"20615:4:17"},{"name":"base","nodeType":"YulIdentifier","src":"20621:4:17"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"20611:3:17"},"nodeType":"YulFunctionCall","src":"20611:15:17"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"20603:4:17"}]},{"nodeType":"YulAssignment","src":"20639:29:17","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20655:2:17"},{"name":"exponent","nodeType":"YulIdentifier","src":"20659:8:17"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20651:3:17"},"nodeType":"YulFunctionCall","src":"20651:17:17"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"20639:8:17"}]}]},"condition":{"kind":"bool","nodeType":"YulLiteral","src":"20372:4:17","type":"","value":"true"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"20377:3:17","statements":[]},"pre":{"nodeType":"YulBlock","src":"20368:3:17","statements":[]},"src":"20364:314:17"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nodeType":"YulTypedName","src":"20259:6:17","type":""},{"name":"_base","nodeType":"YulTypedName","src":"20267:5:17","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"20274:8:17","type":""},{"name":"max","nodeType":"YulTypedName","src":"20284:3:17","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"20292:5:17","type":""},{"name":"base","nodeType":"YulTypedName","src":"20299:4:17","type":""}],"src":"20231:453:17"},{"body":{"nodeType":"YulBlock","src":"20759:69:17","statements":[{"nodeType":"YulAssignment","src":"20769:53:17","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"20799:4:17"},{"name":"exponent","nodeType":"YulIdentifier","src":"20805:8:17"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20819:1:17","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20815:3:17"},"nodeType":"YulFunctionCall","src":"20815:6:17"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"20778:20:17"},"nodeType":"YulFunctionCall","src":"20778:44:17"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"20769:5:17"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"20730:4:17","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"20736:8:17","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"20749:5:17","type":""}],"src":"20689:139:17"},{"body":{"nodeType":"YulBlock","src":"20897:858:17","statements":[{"body":{"nodeType":"YulBlock","src":"20935:52:17","statements":[{"nodeType":"YulAssignment","src":"20949:10:17","value":{"kind":"number","nodeType":"YulLiteral","src":"20958:1:17","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"20949:5:17"}]},{"nodeType":"YulLeave","src":"20972:5:17"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"20917:8:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20910:6:17"},"nodeType":"YulFunctionCall","src":"20910:16:17"},"nodeType":"YulIf","src":"20907:2:17"},{"body":{"nodeType":"YulBlock","src":"21020:52:17","statements":[{"nodeType":"YulAssignment","src":"21034:10:17","value":{"kind":"number","nodeType":"YulLiteral","src":"21043:1:17","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"21034:5:17"}]},{"nodeType":"YulLeave","src":"21057:5:17"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"21006:4:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20999:6:17"},"nodeType":"YulFunctionCall","src":"20999:12:17"},"nodeType":"YulIf","src":"20996:2:17"},{"cases":[{"body":{"nodeType":"YulBlock","src":"21108:52:17","statements":[{"nodeType":"YulAssignment","src":"21122:10:17","value":{"kind":"number","nodeType":"YulLiteral","src":"21131:1:17","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"21122:5:17"}]},{"nodeType":"YulLeave","src":"21145:5:17"}]},"nodeType":"YulCase","src":"21101:59:17","value":{"kind":"number","nodeType":"YulLiteral","src":"21106:1:17","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"21176:176:17","statements":[{"body":{"nodeType":"YulBlock","src":"21211:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21213:16:17"},"nodeType":"YulFunctionCall","src":"21213:18:17"},"nodeType":"YulExpressionStatement","src":"21213:18:17"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"21196:8:17"},{"kind":"number","nodeType":"YulLiteral","src":"21206:3:17","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21193:2:17"},"nodeType":"YulFunctionCall","src":"21193:17:17"},"nodeType":"YulIf","src":"21190:2:17"},{"nodeType":"YulAssignment","src":"21246:25:17","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"21259:8:17"},{"kind":"number","nodeType":"YulLiteral","src":"21269:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21255:3:17"},"nodeType":"YulFunctionCall","src":"21255:16:17"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"21246:5:17"}]},{"body":{"nodeType":"YulBlock","src":"21302:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21304:16:17"},"nodeType":"YulFunctionCall","src":"21304:18:17"},"nodeType":"YulExpressionStatement","src":"21304:18:17"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"21290:5:17"},{"name":"max","nodeType":"YulIdentifier","src":"21297:3:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21287:2:17"},"nodeType":"YulFunctionCall","src":"21287:14:17"},"nodeType":"YulIf","src":"21284:2:17"},{"nodeType":"YulLeave","src":"21337:5:17"}]},"nodeType":"YulCase","src":"21169:183:17","value":{"kind":"number","nodeType":"YulLiteral","src":"21174:1:17","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"21088:4:17"},"nodeType":"YulSwitch","src":"21081:271:17"},{"body":{"nodeType":"YulBlock","src":"21450:123:17","statements":[{"nodeType":"YulAssignment","src":"21464:28:17","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"21477:4:17"},{"name":"exponent","nodeType":"YulIdentifier","src":"21483:8:17"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"21473:3:17"},"nodeType":"YulFunctionCall","src":"21473:19:17"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"21464:5:17"}]},{"body":{"nodeType":"YulBlock","src":"21523:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21525:16:17"},"nodeType":"YulFunctionCall","src":"21525:18:17"},"nodeType":"YulExpressionStatement","src":"21525:18:17"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"21511:5:17"},{"name":"max","nodeType":"YulIdentifier","src":"21518:3:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21508:2:17"},"nodeType":"YulFunctionCall","src":"21508:14:17"},"nodeType":"YulIf","src":"21505:2:17"},{"nodeType":"YulLeave","src":"21558:5:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"21374:4:17"},{"kind":"number","nodeType":"YulLiteral","src":"21380:2:17","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21371:2:17"},"nodeType":"YulFunctionCall","src":"21371:12:17"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"21388:8:17"},{"kind":"number","nodeType":"YulLiteral","src":"21398:2:17","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21385:2:17"},"nodeType":"YulFunctionCall","src":"21385:16:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21367:3:17"},"nodeType":"YulFunctionCall","src":"21367:35:17"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"21411:4:17"},{"kind":"number","nodeType":"YulLiteral","src":"21417:3:17","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21408:2:17"},"nodeType":"YulFunctionCall","src":"21408:13:17"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"21426:8:17"},{"kind":"number","nodeType":"YulLiteral","src":"21436:2:17","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21423:2:17"},"nodeType":"YulFunctionCall","src":"21423:16:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21404:3:17"},"nodeType":"YulFunctionCall","src":"21404:36:17"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21364:2:17"},"nodeType":"YulFunctionCall","src":"21364:77:17"},"nodeType":"YulIf","src":"21361:2:17"},{"nodeType":"YulVariableDeclaration","src":"21582:65:17","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21624:1:17","type":"","value":"1"},{"name":"base","nodeType":"YulIdentifier","src":"21627:4:17"},{"name":"exponent","nodeType":"YulIdentifier","src":"21633:8:17"},{"name":"max","nodeType":"YulIdentifier","src":"21643:3:17"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"21605:18:17"},"nodeType":"YulFunctionCall","src":"21605:42:17"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"21586:7:17","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"21595:6:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"21689:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21691:16:17"},"nodeType":"YulFunctionCall","src":"21691:18:17"},"nodeType":"YulExpressionStatement","src":"21691:18:17"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"21662:7:17"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"21675:3:17"},{"name":"base_1","nodeType":"YulIdentifier","src":"21680:6:17"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21671:3:17"},"nodeType":"YulFunctionCall","src":"21671:16:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21659:2:17"},"nodeType":"YulFunctionCall","src":"21659:29:17"},"nodeType":"YulIf","src":"21656:2:17"},{"nodeType":"YulAssignment","src":"21720:29:17","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"21733:7:17"},{"name":"base_1","nodeType":"YulIdentifier","src":"21742:6:17"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21729:3:17"},"nodeType":"YulFunctionCall","src":"21729:20:17"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"21720:5:17"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"20863:4:17","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"20869:8:17","type":""},{"name":"max","nodeType":"YulTypedName","src":"20879:3:17","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"20887:5:17","type":""}],"src":"20833:922:17"},{"body":{"nodeType":"YulBlock","src":"21812:116:17","statements":[{"body":{"nodeType":"YulBlock","src":"21871:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21873:16:17"},"nodeType":"YulFunctionCall","src":"21873:18:17"},"nodeType":"YulExpressionStatement","src":"21873:18:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21843:1:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21836:6:17"},"nodeType":"YulFunctionCall","src":"21836:9:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21829:6:17"},"nodeType":"YulFunctionCall","src":"21829:17:17"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21851:1:17"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21862:1:17","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21858:3:17"},"nodeType":"YulFunctionCall","src":"21858:6:17"},{"name":"x","nodeType":"YulIdentifier","src":"21866:1:17"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21854:3:17"},"nodeType":"YulFunctionCall","src":"21854:14:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21848:2:17"},"nodeType":"YulFunctionCall","src":"21848:21:17"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21825:3:17"},"nodeType":"YulFunctionCall","src":"21825:45:17"},"nodeType":"YulIf","src":"21822:2:17"},{"nodeType":"YulAssignment","src":"21902:20:17","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21917:1:17"},{"name":"y","nodeType":"YulIdentifier","src":"21920:1:17"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21913:3:17"},"nodeType":"YulFunctionCall","src":"21913:9:17"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21902:7:17"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21791:1:17","type":""},{"name":"y","nodeType":"YulTypedName","src":"21794:1:17","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"21800:7:17","type":""}],"src":"21760:168:17"},{"body":{"nodeType":"YulBlock","src":"21982:76:17","statements":[{"body":{"nodeType":"YulBlock","src":"22004:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22006:16:17"},"nodeType":"YulFunctionCall","src":"22006:18:17"},"nodeType":"YulExpressionStatement","src":"22006:18:17"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21998:1:17"},{"name":"y","nodeType":"YulIdentifier","src":"22001:1:17"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21995:2:17"},"nodeType":"YulFunctionCall","src":"21995:8:17"},"nodeType":"YulIf","src":"21992:2:17"},{"nodeType":"YulAssignment","src":"22035:17:17","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22047:1:17"},{"name":"y","nodeType":"YulIdentifier","src":"22050:1:17"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22043:3:17"},"nodeType":"YulFunctionCall","src":"22043:9:17"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"22035:4:17"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21964:1:17","type":""},{"name":"y","nodeType":"YulTypedName","src":"21967:1:17","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"21973:4:17","type":""}],"src":"21933:125:17"},{"body":{"nodeType":"YulBlock","src":"22116:205:17","statements":[{"nodeType":"YulVariableDeclaration","src":"22126:10:17","value":{"kind":"number","nodeType":"YulLiteral","src":"22135:1:17","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"22130:1:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"22195:63:17","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"22220:3:17"},{"name":"i","nodeType":"YulIdentifier","src":"22225:1:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22216:3:17"},"nodeType":"YulFunctionCall","src":"22216:11:17"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"22239:3:17"},{"name":"i","nodeType":"YulIdentifier","src":"22244:1:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22235:3:17"},"nodeType":"YulFunctionCall","src":"22235:11:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22229:5:17"},"nodeType":"YulFunctionCall","src":"22229:18:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22209:6:17"},"nodeType":"YulFunctionCall","src":"22209:39:17"},"nodeType":"YulExpressionStatement","src":"22209:39:17"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"22156:1:17"},{"name":"length","nodeType":"YulIdentifier","src":"22159:6:17"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22153:2:17"},"nodeType":"YulFunctionCall","src":"22153:13:17"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"22167:19:17","statements":[{"nodeType":"YulAssignment","src":"22169:15:17","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"22178:1:17"},{"kind":"number","nodeType":"YulLiteral","src":"22181:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22174:3:17"},"nodeType":"YulFunctionCall","src":"22174:10:17"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"22169:1:17"}]}]},"pre":{"nodeType":"YulBlock","src":"22149:3:17","statements":[]},"src":"22145:113:17"},{"body":{"nodeType":"YulBlock","src":"22284:31:17","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"22297:3:17"},{"name":"length","nodeType":"YulIdentifier","src":"22302:6:17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22293:3:17"},"nodeType":"YulFunctionCall","src":"22293:16:17"},{"kind":"number","nodeType":"YulLiteral","src":"22311:1:17","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22286:6:17"},"nodeType":"YulFunctionCall","src":"22286:27:17"},"nodeType":"YulExpressionStatement","src":"22286:27:17"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"22273:1:17"},{"name":"length","nodeType":"YulIdentifier","src":"22276:6:17"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22270:2:17"},"nodeType":"YulFunctionCall","src":"22270:13:17"},"nodeType":"YulIf","src":"22267:2:17"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"22094:3:17","type":""},{"name":"dst","nodeType":"YulTypedName","src":"22099:3:17","type":""},{"name":"length","nodeType":"YulTypedName","src":"22104:6:17","type":""}],"src":"22063:258:17"},{"body":{"nodeType":"YulBlock","src":"22381:325:17","statements":[{"nodeType":"YulAssignment","src":"22391:22:17","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"22405:4:17"},{"kind":"number","nodeType":"YulLiteral","src":"22411:1:17","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"22401:3:17"},"nodeType":"YulFunctionCall","src":"22401:12:17"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"22391:6:17"}]},{"nodeType":"YulVariableDeclaration","src":"22422:38:17","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"22452:4:17"},{"kind":"number","nodeType":"YulLiteral","src":"22458:1:17","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22448:3:17"},"nodeType":"YulFunctionCall","src":"22448:12:17"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"22426:18:17","type":""}]},{"body":{"nodeType":"YulBlock","src":"22499:31:17","statements":[{"nodeType":"YulAssignment","src":"22501:27:17","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"22515:6:17"},{"kind":"number","nodeType":"YulLiteral","src":"22523:4:17","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22511:3:17"},"nodeType":"YulFunctionCall","src":"22511:17:17"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"22501:6:17"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"22479:18:17"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22472:6:17"},"nodeType":"YulFunctionCall","src":"22472:26:17"},"nodeType":"YulIf","src":"22469:2:17"},{"body":{"nodeType":"YulBlock","src":"22589:111:17","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22610:1:17","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22617:3:17","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22622:10:17","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22613:3:17"},"nodeType":"YulFunctionCall","src":"22613:20:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22603:6:17"},"nodeType":"YulFunctionCall","src":"22603:31:17"},"nodeType":"YulExpressionStatement","src":"22603:31:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22654:1:17","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22657:4:17","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22647:6:17"},"nodeType":"YulFunctionCall","src":"22647:15:17"},"nodeType":"YulExpressionStatement","src":"22647:15:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22682:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22685:4:17","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22675:6:17"},"nodeType":"YulFunctionCall","src":"22675:15:17"},"nodeType":"YulExpressionStatement","src":"22675:15:17"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"22545:18:17"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"22568:6:17"},{"kind":"number","nodeType":"YulLiteral","src":"22576:2:17","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22565:2:17"},"nodeType":"YulFunctionCall","src":"22565:14:17"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22542:2:17"},"nodeType":"YulFunctionCall","src":"22542:38:17"},"nodeType":"YulIf","src":"22539:2:17"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"22361:4:17","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"22370:6:17","type":""}],"src":"22326:380:17"},{"body":{"nodeType":"YulBlock","src":"22758:88:17","statements":[{"body":{"nodeType":"YulBlock","src":"22789:22:17","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22791:16:17"},"nodeType":"YulFunctionCall","src":"22791:18:17"},"nodeType":"YulExpressionStatement","src":"22791:18:17"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22774:5:17"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22785:1:17","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22781:3:17"},"nodeType":"YulFunctionCall","src":"22781:6:17"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22771:2:17"},"nodeType":"YulFunctionCall","src":"22771:17:17"},"nodeType":"YulIf","src":"22768:2:17"},{"nodeType":"YulAssignment","src":"22820:20:17","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22831:5:17"},{"kind":"number","nodeType":"YulLiteral","src":"22838:1:17","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22827:3:17"},"nodeType":"YulFunctionCall","src":"22827:13:17"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"22820:3:17"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22740:5:17","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"22750:3:17","type":""}],"src":"22711:135:17"},{"body":{"nodeType":"YulBlock","src":"22883:95:17","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22900:1:17","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22907:3:17","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22912:10:17","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22903:3:17"},"nodeType":"YulFunctionCall","src":"22903:20:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22893:6:17"},"nodeType":"YulFunctionCall","src":"22893:31:17"},"nodeType":"YulExpressionStatement","src":"22893:31:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22940:1:17","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22943:4:17","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22933:6:17"},"nodeType":"YulFunctionCall","src":"22933:15:17"},"nodeType":"YulExpressionStatement","src":"22933:15:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22964:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22967:4:17","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22957:6:17"},"nodeType":"YulFunctionCall","src":"22957:15:17"},"nodeType":"YulExpressionStatement","src":"22957:15:17"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"22851:127:17"},{"body":{"nodeType":"YulBlock","src":"23015:95:17","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23032:1:17","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23039:3:17","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23044:10:17","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23035:3:17"},"nodeType":"YulFunctionCall","src":"23035:20:17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23025:6:17"},"nodeType":"YulFunctionCall","src":"23025:31:17"},"nodeType":"YulExpressionStatement","src":"23025:31:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23072:1:17","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23075:4:17","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23065:6:17"},"nodeType":"YulFunctionCall","src":"23065:15:17"},"nodeType":"YulExpressionStatement","src":"23065:15:17"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23096:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23099:4:17","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23089:6:17"},"nodeType":"YulFunctionCall","src":"23089:15:17"},"nodeType":"YulExpressionStatement","src":"23089:15:17"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"22983:127:17"}]},"contents":"{\\n    { }\\n    function abi_decode_t_address(offset) -> value\\n    {\\n        value := calldataload(offset)\\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\\n    }\\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\\n    {\\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\\n        value0 := abi_decode_t_address(headStart)\\n    }\\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\\n    {\\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\\n        value0 := abi_decode_t_address(headStart)\\n        value1 := abi_decode_t_address(add(headStart, 32))\\n    }\\n    function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\\n    {\\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\\n        value0 := abi_decode_t_address(headStart)\\n        value1 := abi_decode_t_address(add(headStart, 32))\\n        value2 := abi_decode_t_address(add(headStart, 64))\\n    }\\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\\n    {\\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\\n        value0 := abi_decode_t_address(headStart)\\n        value1 := abi_decode_t_address(add(headStart, 32))\\n        value2 := calldataload(add(headStart, 64))\\n    }\\n    function abi_decode_tuple_t_addresst_addresst_uint256t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\\n    {\\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\\n        value0 := abi_decode_t_address(headStart)\\n        value1 := abi_decode_t_address(add(headStart, 32))\\n        value2 := calldataload(add(headStart, 64))\\n        value3 := abi_decode_t_address(add(headStart, 96))\\n        value4 := calldataload(add(headStart, 128))\\n    }\\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\\n    {\\n        if slt(sub(dataEnd, headStart), 128) { revert(value0, value0) }\\n        value0 := abi_decode_t_address(headStart)\\n        value1 := abi_decode_t_address(add(headStart, 32))\\n        value2 := calldataload(add(headStart, 64))\\n        value3 := calldataload(add(headStart, 96))\\n    }\\n    function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\\n    {\\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\\n        value0 := abi_decode_t_address(headStart)\\n        value1 := calldataload(add(headStart, 32))\\n    }\\n    function abi_decode_tuple_t_addresst_string_memory_ptr(headStart, dataEnd) -> value0, value1\\n    {\\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\\n        value0 := abi_decode_t_address(headStart)\\n        let offset := calldataload(add(headStart, 32))\\n        if gt(offset, 0xffffffffffffffff) { revert(value1, value1) }\\n        let _1 := add(headStart, offset)\\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(value1, value1) }\\n        let _2 := calldataload(_1)\\n        let array := allocateMemory(array_allocation_size_t_string(_2))\\n        mstore(array, _2)\\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(value1, value1) }\\n        calldatacopy(add(array, 32), add(_1, 32), _2)\\n        mstore(add(add(array, _2), 32), value1)\\n        value1 := array\\n    }\\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\\n    {\\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\\n        value0 := abi_decode_t_address(headStart)\\n        value1 := calldataload(add(headStart, 32))\\n    }\\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\\n    {\\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\\n        let value := mload(headStart)\\n        if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\\n        value0 := value\\n    }\\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\\n    {\\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\\n        let offset := mload(headStart)\\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\\n        let _1 := add(headStart, offset)\\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(value0, value0) }\\n        let _2 := mload(_1)\\n        let array := allocateMemory(array_allocation_size_t_string(_2))\\n        mstore(array, _2)\\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(value0, value0) }\\n        copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\\n        value0 := array\\n    }\\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\\n    {\\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\\n        value0 := calldataload(headStart)\\n    }\\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\\n    {\\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\\n        value0 := mload(headStart)\\n    }\\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\\n    {\\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\\n        value0 := calldataload(headStart)\\n        value1 := abi_decode_t_address(add(headStart, 32))\\n    }\\n    function abi_decode_tuple_t_uint256t_addresst_address(headStart, dataEnd) -> value0, value1, value2\\n    {\\n        if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\\n        value0 := calldataload(headStart)\\n        value1 := abi_decode_t_address(add(headStart, 32))\\n        value2 := abi_decode_t_address(add(headStart, 64))\\n    }\\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\\n    {\\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\\n        value0 := calldataload(headStart)\\n        value1 := calldataload(add(headStart, 32))\\n    }\\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\\n    {\\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\\n        let value := mload(headStart)\\n        if iszero(eq(value, and(value, 0xff))) { revert(value0, value0) }\\n        value0 := value\\n    }\\n    function abi_encode_t_string(value, pos) -> end\\n    {\\n        let length := mload(value)\\n        mstore(pos, length)\\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\\n    }\\n    function abi_encode_t_struct$_provider(value, pos) -> end\\n    {\\n        let memberValue0 := mload(value)\\n        mstore(pos, 0x40)\\n        let tail := abi_encode_t_string(memberValue0, add(pos, 0x40))\\n        mstore(add(pos, 0x20), and(mload(add(value, 0x20)), sub(shl(160, 1), 1)))\\n        end := tail\\n    }\\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        tail := add(headStart, 32)\\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\\n    }\\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\\n    {\\n        tail := add(headStart, 96)\\n        let _1 := sub(shl(160, 1), 1)\\n        mstore(headStart, and(value0, _1))\\n        mstore(add(headStart, 32), and(value1, _1))\\n        mstore(add(headStart, 64), value2)\\n    }\\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\\n    {\\n        tail := add(headStart, 64)\\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\\n        mstore(add(headStart, 32), value1)\\n    }\\n    function abi_encode_tuple_t_address_t_uint256_t_address_t_uint256__to_t_address_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\\n    {\\n        tail := add(headStart, 128)\\n        let _1 := sub(shl(160, 1), 1)\\n        mstore(headStart, and(value0, _1))\\n        mstore(add(headStart, 32), value1)\\n        mstore(add(headStart, 64), and(value2, _1))\\n        mstore(add(headStart, 96), value3)\\n    }\\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\\n    {\\n        tail := add(headStart, 96)\\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\\n        mstore(add(headStart, 32), value1)\\n        mstore(add(headStart, 64), value2)\\n    }\\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        let _1 := 32\\n        let tail_1 := add(headStart, _1)\\n        mstore(headStart, _1)\\n        let pos := tail_1\\n        let length := mload(value0)\\n        mstore(tail_1, length)\\n        pos := add(headStart, 64)\\n        let srcPtr := add(value0, _1)\\n        let i := tail\\n        for { } lt(i, length) { i := add(i, 1) }\\n        {\\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\\n            pos := add(pos, _1)\\n            srcPtr := add(srcPtr, _1)\\n        }\\n        tail := pos\\n    }\\n    function abi_encode_tuple_t_array$_t_struct$_platform_$3582_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_platform_$3582_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        let _1 := 32\\n        let tail_1 := add(headStart, _1)\\n        mstore(headStart, _1)\\n        let pos := tail_1\\n        let length := mload(value0)\\n        mstore(tail_1, length)\\n        let _2 := 64\\n        pos := add(headStart, _2)\\n        let srcPtr := add(value0, _1)\\n        let i := tail\\n        for { } lt(i, length) { i := add(i, 1) }\\n        {\\n            let _3 := mload(srcPtr)\\n            mstore(pos, mload(_3))\\n            mstore(add(pos, _1), and(mload(add(_3, _1)), sub(shl(160, 1), 1)))\\n            pos := add(pos, _2)\\n            srcPtr := add(srcPtr, _1)\\n        }\\n        tail := pos\\n    }\\n    function abi_encode_tuple_t_array$_t_struct$_provider_$3592_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_provider_$3592_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        let _1 := 32\\n        let tail_1 := add(headStart, _1)\\n        mstore(headStart, _1)\\n        let pos := tail_1\\n        let length := mload(value0)\\n        mstore(tail_1, length)\\n        pos := add(headStart, 64)\\n        let tail_2 := add(add(headStart, mul(length, _1)), 64)\\n        let srcPtr := add(value0, _1)\\n        let i := tail\\n        for { } lt(i, length) { i := add(i, 1) }\\n        {\\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\\n            tail_2 := abi_encode_t_struct$_provider(mload(srcPtr), tail_2)\\n            srcPtr := add(srcPtr, _1)\\n            pos := add(pos, _1)\\n        }\\n        tail := tail_2\\n    }\\n    function abi_encode_tuple_t_array$_t_struct$_token_$3587_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_token_$3587_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        let _1 := 32\\n        let tail_1 := add(headStart, _1)\\n        mstore(headStart, _1)\\n        let pos := tail_1\\n        let length := mload(value0)\\n        mstore(tail_1, length)\\n        pos := add(headStart, 64)\\n        let tail_2 := add(add(headStart, mul(length, _1)), 64)\\n        let srcPtr := add(value0, _1)\\n        let i := tail\\n        for { } lt(i, length) { i := add(i, 1) }\\n        {\\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\\n            tail_2 := abi_encode_t_struct$_provider(mload(srcPtr), tail_2)\\n            srcPtr := add(srcPtr, _1)\\n            pos := add(pos, _1)\\n        }\\n        tail := tail_2\\n    }\\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        tail := add(headStart, 32)\\n        mstore(headStart, iszero(iszero(value0)))\\n    }\\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        tail := add(headStart, 32)\\n        mstore(headStart, value0)\\n    }\\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        mstore(headStart, 32)\\n        tail := abi_encode_t_string(value0, add(headStart, 32))\\n    }\\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 20)\\n        mstore(add(headStart, 64), \\"Pausable: not paused\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 38)\\n        mstore(add(headStart, 64), \\"Ownable: new owner is the zero a\\")\\n        mstore(add(headStart, 96), \\"ddress\\")\\n        tail := add(headStart, 128)\\n    }\\n    function abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 15)\\n        mstore(add(headStart, 64), \\"Transfer failed\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 29)\\n        mstore(add(headStart, 64), \\"Locked to prevent renentrancy\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_35557054842e6bac2d5677ccc2aeb32b43981809d9c333559406d70b18885a3e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 17)\\n        mstore(add(headStart, 64), \\"Unsupported token\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 20)\\n        mstore(add(headStart, 64), \\"Insufficient balance\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 24)\\n        mstore(add(headStart, 64), \\"Contract in paused state\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 16)\\n        mstore(add(headStart, 64), \\"Pausable: paused\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_6bcd345f4c7b73f5cd4feebd39cb3befed09360f28038e7e668a1b391b719f4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 19)\\n        mstore(add(headStart, 64), \\"Unauthorized oracle\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 32)\\n        mstore(add(headStart, 64), \\"Ownable: caller is not the owner\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 13)\\n        mstore(add(headStart, 64), \\"Zero eth sent\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_9e27cf84062ca3c0af9382af6cdd258fd123bdb3418633ba1a4dde9e29d5d3b7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 22)\\n        mstore(add(headStart, 64), \\"Unauthorized treasurer\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_a1e59d7b97f0680349c22289f1e4dd68175c3de2e3155f54bf05a002152968c5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 19)\\n        mstore(add(headStart, 64), \\"Unauthorized sender\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_a7488aed9efb581ec025bbf34f5cf87ffa2431375dd8982219b303742d3d79ce__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 29)\\n        mstore(add(headStart, 64), \\"Liquidity pool does not exist\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 28)\\n        mstore(add(headStart, 64), \\"Subscription window breached\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 28)\\n        mstore(add(headStart, 64), \\"Locked to prevent reentrancy\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_ceaa3b02d373c2ad73562e084b288c6a1deb5ca6fad548fa2aff492271ebb58d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 26)\\n        mstore(add(headStart, 64), \\"Locked to avoid reentrancy\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\\n    {\\n        mstore(headStart, 32)\\n        mstore(add(headStart, 32), 22)\\n        mstore(add(headStart, 64), \\"Manager does not exist\\")\\n        tail := add(headStart, 96)\\n    }\\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\\n    {\\n        tail := add(headStart, 32)\\n        mstore(headStart, value0)\\n    }\\n    function abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\\n    {\\n        tail := add(headStart, 96)\\n        mstore(headStart, value0)\\n        let _1 := sub(shl(160, 1), 1)\\n        mstore(add(headStart, 32), and(value1, _1))\\n        mstore(add(headStart, 64), and(value2, _1))\\n    }\\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\\n    {\\n        tail := add(headStart, 64)\\n        mstore(headStart, value0)\\n        mstore(add(headStart, 32), value1)\\n    }\\n    function allocateMemory(size) -> memPtr\\n    {\\n        memPtr := mload(64)\\n        let newFreePtr := add(memPtr, size)\\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\\n        mstore(64, newFreePtr)\\n    }\\n    function array_allocation_size_t_string(length) -> size\\n    {\\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\\n        size := add(and(add(length, 0x1f), not(31)), 0x20)\\n    }\\n    function checked_add_t_uint256(x, y) -> sum\\n    {\\n        if gt(x, not(y)) { panic_error_0x11() }\\n        sum := add(x, y)\\n    }\\n    function checked_div_t_uint256(x, y) -> r\\n    {\\n        if iszero(y)\\n        {\\n            mstore(r, shl(224, 0x4e487b71))\\n            mstore(4, 0x12)\\n            revert(r, 0x24)\\n        }\\n        r := div(x, y)\\n    }\\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base\\n    {\\n        power := _power\\n        base := _base\\n        for { } true { }\\n        {\\n            let _1 := 1\\n            if iszero(gt(exponent, _1)) { break }\\n            if gt(base, div(max, base)) { panic_error_0x11() }\\n            if and(exponent, _1) { power := mul(power, base) }\\n            base := mul(base, base)\\n            exponent := shr(_1, exponent)\\n        }\\n    }\\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power\\n    {\\n        power := checked_exp_unsigned(base, exponent, not(0))\\n    }\\n    function checked_exp_unsigned(base, exponent, max) -> power\\n    {\\n        if iszero(exponent)\\n        {\\n            power := 1\\n            leave\\n        }\\n        if iszero(base)\\n        {\\n            power := 0\\n            leave\\n        }\\n        switch base\\n        case 1 {\\n            power := 1\\n            leave\\n        }\\n        case 2 {\\n            if gt(exponent, 255) { panic_error_0x11() }\\n            power := shl(exponent, 1)\\n            if gt(power, max) { panic_error_0x11() }\\n            leave\\n        }\\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\\n        {\\n            power := exp(base, exponent)\\n            if gt(power, max) { panic_error_0x11() }\\n            leave\\n        }\\n        let power_1, base_1 := checked_exp_helper(1, base, exponent, max)\\n        if gt(power_1, div(max, base_1)) { panic_error_0x11() }\\n        power := mul(power_1, base_1)\\n    }\\n    function checked_mul_t_uint256(x, y) -> product\\n    {\\n        if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\\n        product := mul(x, y)\\n    }\\n    function checked_sub_t_uint256(x, y) -> diff\\n    {\\n        if lt(x, y) { panic_error_0x11() }\\n        diff := sub(x, y)\\n    }\\n    function copy_memory_to_memory(src, dst, length)\\n    {\\n        let i := 0\\n        for { } lt(i, length) { i := add(i, 32) }\\n        {\\n            mstore(add(dst, i), mload(add(src, i)))\\n        }\\n        if gt(i, length) { mstore(add(dst, length), 0) }\\n    }\\n    function extract_byte_array_length(data) -> length\\n    {\\n        length := div(data, 2)\\n        let outOfPlaceEncoding := and(data, 1)\\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\\n        if eq(outOfPlaceEncoding, lt(length, 32))\\n        {\\n            mstore(0, shl(224, 0x4e487b71))\\n            mstore(4, 0x22)\\n            revert(0, 0x24)\\n        }\\n    }\\n    function increment_t_uint256(value) -> ret\\n    {\\n        if eq(value, not(0)) { panic_error_0x11() }\\n        ret := add(value, 1)\\n    }\\n    function panic_error_0x11()\\n    {\\n        mstore(0, shl(224, 0x4e487b71))\\n        mstore(4, 0x11)\\n        revert(0, 0x24)\\n    }\\n    function panic_error_0x41()\\n    {\\n        mstore(0, shl(224, 0x4e487b71))\\n        mstore(4, 0x41)\\n        revert(0, 0x24)\\n    }\\n}","id":17,"language":"Yul","name":"#utility.yul"}],"sourceMap":"600:25197:7:-:0;;;1028:1;998:31;;1062:1;1036:27;;1102:1;1074:29;;4019:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;867:23:0;877:12;:10;:12::i;:::-;867:9;:23::i;:::-;934:5:1;924:15;;-1:-1:-1;;;;924:15:1;;;4111:13:7;:20;;;4142:9;:18;;;4171:11;:15;4197:14;:23;;;4231:5;:14;;-1:-1:-1;;;;;;4231:14:7;-1:-1:-1;;;;;4231:14:7;;;;;4268:7;:5;:7::i;:::-;4257:8;:18;;-1:-1:-1;;;;;;4257:18:7;-1:-1:-1;;;;;4257:18:7;;;;;;;;;;-1:-1:-1;600:25197:7;;-1:-1:-1;;;600:25197:7;587:96:5;666:10;587:96;:::o;2041:169:0:-;2096:16;2115:6;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;2163:40;;2115:6;;;;;;;2163:40;;2096:16;2163:40;2041:169;;:::o;973:85::-;1019:7;1045:6;-1:-1:-1;;;;;1045:6:0;973:85;:::o;14:494:17:-;;;;;188:3;176:9;167:7;163:23;159:33;156:2;;;210:6;202;195:22;156:2;238:16;;294:2;279:18;;273:25;338:2;323:18;;317:25;385:2;370:18;;364:25;238:16;;-1:-1:-1;273:25:17;;-1:-1:-1;317:25:17;-1:-1:-1;;;;;;418:31:17;;408:42;;398:2;;469:6;461;454:22;398:2;146:362;;;;-1:-1:-1;146:362:17;;-1:-1:-1;;146:362:17:o;:::-;600:25197:7;;;;;;","deployedSourceMap":"600:25197:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10906:9;;:12;10903:98;;10953:15;10941:9;;:27;10933:68;;;;-1:-1:-1;;;10933:68:7;;;;;;;:::i;:::-;;;;;;;;;11045:9;11037:39;;;;-1:-1:-1;;;11037:39:7;;;;;;;:::i;:::-;11134:8;:6;:8::i;:::-;:17;11126:54;;;;-1:-1:-1;;;11126:54:7;;;;;;;:::i;:::-;-1:-1:-1;;;11228:20:7;;:4;:20;;;;;;11227:21;11219:60;;;;-1:-1:-1;;;11219:60:7;;;;;;;:::i;:::-;11290:20;:27;;-1:-1:-1;;11290:27:7;11313:4;11290:27;;;11382:10;11290:20;11372:21;;;:9;11290:20;11372:21;;;11290:20;11372:21;;;:35;;;;;;;;:47;11369:277;;11470:131;;;11524:15;;;;;;11470:131;;;11524:15;;;-1:-1:-1;;;11524:15:7;;;;11470:131;;11575:10;11524:15;11470:131;;;;;;;11616:18;;;;;;;11438:29;11616:18;;;;;;;;11470:131;;;;11616:18;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11616:18:7;;;;;;;;;;;;-1:-1:-1;;;;;;11616:18:7;-1:-1:-1;;;;;11616:18:7;;;;;;;;;-1:-1:-1;11369:277:7;11667:10;11659:19;;;;:7;:19;;;;;;11656:120;;11697:3;:20;;;;;;;;;;;-1:-1:-1;;;;;;11697:20:7;11706:10;11697:20;;;;;;11754:10;;-1:-1:-1;11732:19:7;;;:7;11697:20;11732:19;;;;;:32;11656:120;11859:10;11849:21;;;;:9;:21;;;;;;;;:35;;;;;;;;:47;11836:72;;11898:9;11836:12;:72::i;:::-;11796:10;11786:21;;;;:9;:21;;;;;;;;:35;;;;;;;;;:122;;;;11924:66;;11796:10;;11924:66;;;;11786:21;11963:9;;11974:15;;11924:66;:::i;:::-;;;;;;;;12004:26;;;:12;:26;;;;:29;12001:248;;12080:3;12127:26;;;:12;:26;;;;12049:115;;12060:10;;12086:9;;12097:57;;12086:9;;12097:18;:57::i;:::-;12156:7;:5;:7::i;:::-;12049:10;:115::i;:::-;12204:3;12210:26;;;:12;:26;;;;;12184:53;;;;;;:::i;:::-;;;;;;;;12001:248;-1:-1:-1;;;12282:5:7;12259:20;:4;:20;;;:28;;-1:-1:-1;;12259:28:7;;;600:25197;;;;;21936:1013;;;;;;;;;;-1:-1:-1;21936:1013:7;;;;;:::i;:::-;;:::i;:::-;;7928:110;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20408:439;;;;;;;;;;-1:-1:-1;20408:439:7;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;10277:134::-;;;;;;;;;;-1:-1:-1;10277:134:7;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23888:65::-;;;;;;;;;;;;;:::i;19457:805::-;;;;;;;;;;-1:-1:-1;19457:805:7;;;;;:::i;:::-;;:::i;4921:409::-;;;;;;;;;;-1:-1:-1;4921:409:7;;;;;:::i;:::-;;:::i;21081:546::-;;;;;;;;;;-1:-1:-1;21081:546:7;;;;;:::i;:::-;;:::i;1041:84:1:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5516:182:7:-;;;;;;;;;;-1:-1:-1;5516:182:7;;;;;:::i;:::-;;:::i;5937:1111::-;;;;;;;;;;-1:-1:-1;5937:1111:7;;;;;:::i;:::-;;:::i;24369:117::-;;;;;;;;;;-1:-1:-1;24369:117:7;;;;;:::i;:::-;;:::i;24247:114::-;;;;;;;;;;-1:-1:-1;24247:114:7;;;;;:::i;:::-;;:::i;1605:92:0:-;;;;;;;;;;;;;:::i;23961:88:7:-;;;;;;;;;;-1:-1:-1;23961:88:7;;;;;:::i;:::-;;:::i;23765:61::-;;;;;;;;;;;;;:::i;8247:329::-;;;;;;;;;;-1:-1:-1;8247:329:7;;;;;:::i;:::-;;:::i;973:85:0:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14373:120:7:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;24061:178::-;;;;;;;;;;-1:-1:-1;24061:178:7;;;;;:::i;:::-;;:::i;23329:380::-;;;;;;;;;;-1:-1:-1;23329:380:7;;;;;:::i;:::-;;:::i;14701:166::-;;;;;;;;;;-1:-1:-1;14701:166:7;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;17838:1206::-;;;;;;;;;;-1:-1:-1;17838:1206:7;;;;;:::i;:::-;;:::i;15275:197::-;;;;;;;;;;-1:-1:-1;15275:197:7;;;;;:::i;:::-;;:::i;12617:1694::-;;;;;;;;;;-1:-1:-1;12617:1694:7;;;;;:::i;:::-;;:::i;5766:110::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;22957:140::-;;;;;;;;;;-1:-1:-1;22957:140:7;;;;;:::i;:::-;;:::i;4558:139::-;;;;;;;;;;-1:-1:-1;4558:139:7;;;;;:::i;:::-;;:::i;1846:189:0:-;;;;;;;;;;-1:-1:-1;1846:189:0;;;;;:::i;:::-;;:::i;7337:518:7:-;;;;;;;;;;-1:-1:-1;7337:518:7;;;;;:::i;:::-;;:::i;8786:1350::-;;;;;;;;;;-1:-1:-1;8786:1350:7;;;;;:::i;:::-;;:::i;1041:84:1:-;1088:4;1111:7;-1:-1:-1;;;1111:7:1;;;;;1041:84::o;2672:96:6:-;2730:7;2756:5;2760:1;2756;:5;:::i;:::-;2749:12;;2672:96;;;;;:::o;1776:222:14:-;1838:7;;1876:5;1880:1;1876;:5;:::i;:::-;1858:23;-1:-1:-1;1892:57:14;1901:6;;;:26;;-1:-1:-1;1926:1:14;1911:11;1921:1;1911:7;:11;:::i;:::-;:16;1901:26;5375:1:13;1892:8:14;:57::i;:::-;1977:13;907:4;1977:7;:13;:::i;:::-;1970:20;1776:222;-1:-1:-1;;;;1776:222:14:o;973:85:0:-;1019:7;1045:6;-1:-1:-1;;;;;1045:6:0;973:85;:::o;15484:1808:7:-;-1:-1:-1;;;15626:13:7;;:4;:13;;;;;;15625:14;15617:56;;;;-1:-1:-1;;;15617:56:7;;;;;;;:::i;:::-;15684:13;:20;;-1:-1:-1;;15684:20:7;15700:4;15684:20;;;-1:-1:-1;;;;;15771:20:7;;;15684:13;15771:20;;;:9;15684:13;15771:20;;;15684:13;15771:20;;;:28;;;;;;;;;:40;15758:68;;15813:12;15758;:68::i;:::-;-1:-1:-1;;;;;15715:20:7;;;;;;;:9;:20;;;;;;;;:28;;;;;;;;;:111;15938:13;;15925:26;;;15924:101;;-1:-1:-1;15990:5:7;;15983:27;;;-1:-1:-1;;;15983:27:7;;;;15970:54;;-1:-1:-1;;;;;15990:5:7;;15983:25;;:27;;;;;;;;;;;;;;15990:5;15983:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16012:11;;15970:12;:54::i;:::-;15957:10;:67;15924:101;15921:1324;;;-1:-1:-1;;;;;16044:20:7;;;16095:3;16044:20;;;:9;:20;;;;;;;;:28;;;;;;;;;;:41;;;;:55;16041:238;;-1:-1:-1;;;;;16125:20:7;;;;;;;:9;:20;;;;;;;;:28;;;;;;;;;;;;:41;;;16118:83;;-1:-1:-1;;;16118:83:7;;16125:41;;;16118:58;;:83;;16135:9;;16188:12;;16118:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16041:238;;;16238:41;;-1:-1:-1;;;;;16238:27:7;;;:41;;;;;16266:12;;16238:41;;;;16266:12;16238:27;:41;;;;;;;;;;;;;;;;;;;;;16041:238;15921:1324;;;16438:5;;16431:58;;-1:-1:-1;;;16431:58:7;;-1:-1:-1;;;;;16438:5:7;;;;16431:26;;:58;;16458:7;;16467:9;;16478:10;;16431:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16520:37;16533:11;;16546:10;16520:12;:37::i;:::-;16506:11;:51;-1:-1:-1;;;;;16609:17:7;;;;;;:6;:17;;;;;;16596:43;;16628:10;16596:12;:43::i;:::-;-1:-1:-1;;;;;16576:17:7;;;;;;;:6;:17;;;;;;;;:63;;;;16682:9;:20;;;;;:28;;;;;;;;;;:41;;;16659:91;;16576:17;;16659:91;;;;16682:41;;;16725:12;;16739:10;;16659:91;:::i;:::-;;;;;;;;-1:-1:-1;;;;;16768:20:7;;;16819:3;16768:20;;;:9;:20;;;;;;;;:28;;;;;;;;;;:41;;;;:55;16765:468;;-1:-1:-1;;;;;16905:20:7;;;;;;;:9;:20;;;;;;;;:28;;;;;;;;;;:41;;;16957:8;;16905:41;;;;16898:58;;16957:8;16967:152;16982:97;17001:61;17010:12;17024:37;16926:6;17024:21;:37::i;:::-;17001:8;:61::i;:::-;17064:14;;16982:18;:97::i;:::-;17081:37;17110:6;17081:21;:37::i;:::-;16967:14;:152::i;:::-;16898:222;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16765:468::-;17165:8;;17217:14;;-1:-1:-1;;;;;17165:8:7;;;;17157:76;;17184:48;;17203:12;;17184:18;:48::i;:::-;17157:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16765:468;-1:-1:-1;;;;;17279:5:7;17263:13;-1:-1:-1;;17263:4:7;:13;;-1:-1:-1;17263:13:7;:21;;-1:-1:-1;;17263:21:7;;;15484:1808::o;21936:1013::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;22033:14:7::1;::::0;:4:::1;:14;::::0;;;::::1;;22032:15;22024:57;;;;-1:-1:-1::0;;;22024:57:7::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;22092:14:7::1;::::0;:4:::1;:14;::::0;;:21;;-1:-1:-1;;22092:21:7::1;22109:4;22092:21;::::0;;22131:5:::1;::::0;22092:14;22124:48;-1:-1:-1;;;22124:48:7;;-1:-1:-1;;;;;22131:5:7;;::::1;::::0;22124:18:::1;::::0;:48:::1;::::0;22151:4:::1;::::0;22158:13;;22124:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;22239:22:7;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40:::1;;::::0;22226:69:::1;::::0;-1:-1:-1;22281:13:7;22226:12:::1;:69::i;:::-;-1:-1:-1::0;;;;;22183:22:7;;::::1;;::::0;;;:11:::1;:22;::::0;;;;;;:40:::1;;:112:::0;;;;22338:5:::1;::::0;22311:48;;22183:22;;22311:48:::1;::::0;::::1;::::0;22338:5;::::1;::::0;22345:13;;22311:48:::1;:::i;:::-;;;;;;;;22384:3;:10:::0;22419:11:::1;::::0;22370::::1;22441:468;22457:6;22455:1;:8;22441:468;;;22484:20;22507:77;22526:42;22545:6;:14;22552:3;22556:1;22552:6;;;;;;-1:-1:-1::0;;;22552:6:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;22552:6:7::1;22545:14:::0;;;::::1;::::0;;;;;;;;;22561:6;22526:18:::1;:42::i;:::-;22570:13;22507:18;:77::i;:::-;22606:5;::::0;22622:3:::1;:6:::0;;22484:100;;-1:-1:-1;;;;;;22606:5:7;;::::1;::::0;22599:22:::1;::::0;22622:3;22626:1;;22622:6;::::1;;;-1:-1:-1::0;;;22622:6:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22599:44:::1;::::0;-1:-1:-1;;;;;;22599:44:7::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;22622:6:7::1;::::0;22630:12;;22599:44:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22693:3;22697:1;22693:6;;;;;;-1:-1:-1::0;;;22693:6:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22701:5:::1;::::0;22666:72:::1;::::0;-1:-1:-1;;;;;22693:6:7;;::::1;::::0;22666:72;;::::1;::::0;::::1;::::0;::::1;::::0;22701:5;;::::1;::::0;22708:12;;22722:15:::1;::::0;22666:72:::1;:::i;:::-;;;;;;;;22767:39;22780:11;;22793:12;22767;:39::i;:::-;22753:11;:53;;;;22842:42;22855:6;:14;22862:3;22866:1;22862:6;;;;;;-1:-1:-1::0;;;22862:6:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;22862:6:7::1;22855:14:::0;;;::::1;::::0;;;;;;;;;22871:12;22842::::1;:42::i;:::-;22825:6;:14;22832:3;22836:1;22832:6;;;;;;-1:-1:-1::0;;;22832:6:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;22832:6:7::1;22825:14:::0;;;::::1;::::0;;;;;;;;:59;-1:-1:-1;22465:3:7;::::1;::::0;::::1;:::i;:::-;;;;22441:468;;;-1:-1:-1::0;;;;;22936:5:7::1;22919:14:::0;-1:-1:-1;;22919:4:7::1;:14;::::0;-1:-1:-1;22919:14:7;:22;;-1:-1:-1;;22919:22:7::1;::::0;;21936:1013::o;7928:110::-;7974:28;8021:9;8014:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8014:16:7;;;;;;;;;;;;;;;;;;;;;;7928:110;:::o;20408:439::-;20491:33;20615;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;20756:22:7::1;;::::0;;;:11:::1;:22;::::0;;;;:40;;20798::::1;::::0;;::::1;::::0;20756;;20408:439::o;10277:134::-;10349:16;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10384:19:7;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;;10377:26;;;;;;::::1;::::0;;;;;;;;;;10384:19;;10377:26;::::1;10384:19:::0;10377:26;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;10377:26:7::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;1255:1:0;10277:134:7::0;;;:::o;23888:65::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;23935:10:7::1;:8;:10::i;:::-;23888:65::o:0;19457:805::-;19576:10;19588:1;19562:25;;;:13;:25;;;;;;19554:69;;;;-1:-1:-1;;;19554:69:7;;;;;;;:::i;:::-;-1:-1:-1;;;;;19642:18:7;;19661:1;19642:18;;;:10;:18;;;;;;19634:50;;;;-1:-1:-1;;;19634:50:7;;;;;;;:::i;:::-;19703:8;:6;:8::i;:::-;:17;19695:54;;;;-1:-1:-1;;;19695:54:7;;;;;;;:::i;:::-;-1:-1:-1;;;19769:18:7;;:4;:18;;;;;;19768:19;19760:60;;;;-1:-1:-1;;;19760:60:7;;;;;;;:::i;:::-;19831:18;:25;;-1:-1:-1;;19831:25:7;19852:4;19831:25;;;19896:10;19831:18;19883:24;;;:12;19831:18;19883:24;;;19831:18;19883:24;;;-1:-1:-1;;;;;19883:34:7;;;;;;;;;;19931:11;;:14;;;;:26;;-1:-1:-1;19949:8:7;;;19931:26;19928:290;;;20067:10;20056:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;20056:30:7;;;;;;;;;:37;;;;;;;;:55;;;20043:84;;20113:13;20043:12;:84::i;:::-;19996:10;19985:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;19985:30:7;;;;;;;;;;;:37;;;;;;;;;;:55;;:142;;;;20147:59;;;;;;;;;20008:6;;20192:13;;20147:59;:::i;:::-;;;;;;;;19928:290;-1:-1:-1;;;;;20249:5:7;20228:18;-1:-1:-1;;20228:4:7;:18;;;:26;;-1:-1:-1;;20228:26:7;;;19457:805::o;4921:409::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5014:18:7;::::1;;::::0;;;:10:::1;:18;::::0;;;;;5011:312:::1;;5079:107;::::0;;;;::::1;::::0;;;;;;-1:-1:-1;;;;;5079:107:7;::::1;;::::0;;::::1;::::0;;;;5201:6:::1;:14:::0;;::::1;::::0;::::1;::::0;;5051:25:::1;5201:14:::0;;;;;;;;5079:107;;5201:14:::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;5201:14:7::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;5201:14:7::1;-1:-1:-1::0;;;;;5201:14:7;;::::1;;::::0;;5251:6:::1;:13:::0;5230:18;;::::1;-1:-1:-1::0;5230:18:7;;;:10:::1;:18:::0;;;;;;;;:34;;;;5284:27;;::::1;::::0;::::1;::::0;5305:5;;5284:27:::1;:::i;:::-;;;;;;;;5011:312;;4921:409:::0;;:::o;21081:546::-;21197:32;21316;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;21376:23:7;;::::1;21360:13;21376:23:::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;21508:21;;;:10:::1;:21:::0;;;;;:29;;;::::1;::::0;;;;;;;;:36;;;;;;;:54;;21564::::1;::::0;;::::1;::::0;21508;;21081:546::o;5516:182::-;-1:-1:-1;;;;;5603:18:7;;5584:4;5603:18;;;:10;:18;;;;;;:20;5600:90;;-1:-1:-1;5645:4:7;5638:11;;5600:90;-1:-1:-1;5685:5:7;5678:12;;5937:1111;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6036:18:7;::::1;6004:10;6036:18:::0;;;:10:::1;:18;::::0;;;;;:21;6033:1008:::1;;6087:6;:13:::0;6073:11:::1;6115:915;6131:6;6129:1;:8;6115:915;;;6189:6;-1:-1:-1::0;;;;;6165:30:7::1;:6;6172:1;6165:9;;;;;;-1:-1:-1::0;;;6165:9:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:9;::::0;;::::1;;:22;::::0;-1:-1:-1;;;;;6165:22:7::1;:30;6162:853;;;6225:6;:13:::0;:15:::1;::::0;6239:1:::1;::::0;6225:15:::1;:::i;:::-;6222:1;:18;6219:334;;;6274:6;6281:1;6274:9;;;;;;-1:-1:-1::0;;;6274:9:7::1;;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;6267:16:::1;6274:9:::0;;6267:16:::1;:::i;:::-;-1:-1:-1::0;6267:16:7::1;;::::0;;-1:-1:-1;;;;;;6267:16:7::1;::::0;;-1:-1:-1;;;;;6309:18:7;::::1;6267:16;6309:18:::0;;;:10:::1;:18;::::0;;;;:22;6219:334:::1;;;6417:6;6424:3;:1:::0;6426::::1;6424:3;:::i;:::-;6417:11;;;;;;-1:-1:-1::0;;;6417:11:7::1;;;;;;;;;;;;;;;;;;;6407:6;6414:1;6407:9;;;;;;-1:-1:-1::0;;;6407:9:7::1;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1::0;6407:21:7::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;6407:21:7::1;-1:-1:-1::0;;;;;6407:21:7;;::::1;::::0;;;::::1;::::0;;6502:6:::1;:9:::0;;6491:10:::1;::::0;6407:21:::1;::::0;6509:1;;6502:9;::::1;;;-1:-1:-1::0;;;6502:9:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:9;::::0;;::::1;;:22:::0;;;::::1;::::0;-1:-1:-1;;;;;6502:22:7::1;6491:34:::0;;;::::1;::::0;;;;;;;;;:38:::1;::::0;;::::1;:::i;:::-;6454:10;:34;6465:6;6472:1;6465:9;;;;;;-1:-1:-1::0;;;6465:9:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:9;::::0;;::::1;;:22:::0;;;::::1;::::0;-1:-1:-1;;;;;6465:22:7::1;6454:34:::0;;;::::1;::::0;;;;;;;;:75;6219:334:::1;6583:4;6575:12;;6162:853;;;6633:5;6630:385;;;6668:6;:13:::0;:15:::1;::::0;6682:1:::1;::::0;6668:15:::1;:::i;:::-;6665:1;:18;6662:334;;;6717:6;6724:1;6717:9;;;;;;-1:-1:-1::0;;;6717:9:7::1;;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;6710:16:::1;6717:9:::0;;6710:16:::1;:::i;:::-;-1:-1:-1::0;6710:16:7::1;;::::0;;-1:-1:-1;;;;;;6710:16:7::1;::::0;;-1:-1:-1;;;;;6752:18:7;::::1;6710:16;6752:18:::0;;;:10:::1;:18;::::0;;;;:22;6662:334:::1;;;6860:6;6867:3;:1:::0;6869::::1;6867:3;:::i;:::-;6860:11;;;;;;-1:-1:-1::0;;;6860:11:7::1;;;;;;;;;;;;;;;;;;;6850:6;6857:1;6850:9;;;;;;-1:-1:-1::0;;;6850:9:7::1;;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1::0;6850:21:7::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;6850:21:7::1;-1:-1:-1::0;;;;;6850:21:7;;::::1;::::0;;;::::1;::::0;;6945:6:::1;:9:::0;;6934:10:::1;::::0;6850:21:::1;::::0;6952:1;;6945:9;::::1;;;-1:-1:-1::0;;;6945:9:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:9;::::0;;::::1;;:22:::0;;;::::1;::::0;-1:-1:-1;;;;;6945:22:7::1;6934:34:::0;;;::::1;::::0;;;;;;;;;:38:::1;::::0;;::::1;:::i;:::-;6897:10;:34;6908:6;6915:1;6908:9;;;;;;-1:-1:-1::0;;;6908:9:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:9;::::0;;::::1;;:22:::0;;;::::1;::::0;-1:-1:-1;;;;;6908:22:7::1;6897:34:::0;;;::::1;::::0;;;;;;;;:75;6662:334:::1;6139:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6115:915;;;;6033:1008;1255:1:0;5937:1111:7::0;:::o;24369:117::-;2677:8;;24433:10;;-1:-1:-1;;;;;2677:8:7;:16;;2669:51;;;;-1:-1:-1;;;2669:51:7;;;;;;;:::i;:::-;-1:-1:-1;24455:14:7::1;:23:::0;24369:117::o;24247:114::-;2677:8;;24310:10;;-1:-1:-1;;;;;2677:8:7;:16;;2669:51;;;;-1:-1:-1;;;2669:51:7;;;;;;;:::i;:::-;-1:-1:-1;24332:8:7::1;:21:::0;;-1:-1:-1;;;;;;24332:21:7::1;-1:-1:-1::0;;;;;24332:21:7;;;::::1;::::0;;;::::1;::::0;;24247:114::o;1605:92:0:-;1196:12;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;1669:21:::1;1687:1;1669:9;:21::i;23961:88:7:-:0;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;24025:6:7::1;:16:::0;;-1:-1:-1;;;;;;24025:16:7::1;-1:-1:-1::0;;;;;24025:16:7;;;::::1;::::0;;;::::1;::::0;;23961:88::o;23765:61::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;23810:8:7::1;:6;:8::i;8247:329::-:0;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8337:23:7;;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;8334:235:::1;;-1:-1:-1::0;;;;;8389:19:7;;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;:34;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8389:34:7::1;::::0;;::::1;::::0;;::::1;::::0;;8474:19;;;:26;8438:12:::1;:23:::0;;;;;:33;;;;;;;;;;;:62;;;;8520:37;;::::1;::::0;::::1;::::0;8389:34;;8520:37:::1;:::i;:::-;;;;;;;;8247:329:::0;;:::o;14373:120::-;14429:28;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;14476:9:7::1;14469:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;14469:16:7;;;-1:-1:-1;;14469:16:7::1;::::0;;::::1;::::0;-1:-1:-1;;;;;14469:16:7::1;;::::0;;::::1;::::0;;;;;;;::::1;::::0;::::1;;;24061:178:::0;2554:6;;24133:10;;-1:-1:-1;;;;;2554:6:7;:14;;2546:46;;;;-1:-1:-1;;;2546:46:7;;;;;;;:::i;:::-;-1:-1:-1;;;;;24159:17:7;::::1;24177:1;24159:17:::0;;;:10:::1;:17;::::0;;;;;:19;24156:76:::1;;-1:-1:-1::0;;;;;24194:19:7;::::1;;::::0;;;:12:::1;:19;::::0;;;;:26;;;24156:76:::1;24061:178:::0;;;:::o;23329:380::-;23438:5;;-1:-1:-1;;;;;23438:5:7;23426:10;:17;23418:49;;;;-1:-1:-1;;;23418:49:7;;;;;;;:::i;:::-;-1:-1:-1;;;;;23486:14:7;;;;;;:6;:14;;;;;;:22;-1:-1:-1;23486:22:7;23478:55;;;;-1:-1:-1;;;23478:55:7;;;;;;;:::i;:::-;23544:23;23557:9;23544:12;:23::i;:::-;-1:-1:-1;;;;;23611:17:7;;;;;;:6;:17;;;;;;23598:39;;23630:6;23598:12;:39::i;:::-;-1:-1:-1;;;;;23578:17:7;;;;;;;:6;:17;;;;;;:59;;;;23678:14;;;;;;;23665:36;;23694:6;23665:12;:36::i;:::-;-1:-1:-1;;;;;23648:14:7;;;;;;;:6;:14;;;;;:53;;;;-1:-1:-1;;23329:380:7:o;14701:166::-;14791:7;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;14818:20:7;;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;:28;;;::::1;::::0;;;;;;;:40;;14701:166::o;17838:1206::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;17998:17:7::1;::::0;:4:::1;:17;::::0;;;::::1;;17997:18;17989:59;;;;-1:-1:-1::0;;;17989:59:7::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;18059:17:7::1;::::0;:4:::1;:17;::::0;;:24;;-1:-1:-1;;18059:24:7::1;18079:4;18059:24;::::0;;18102:8:::1;:6;:8::i;:::-;:17;18094:54;;;;-1:-1:-1::0;;;18094:54:7::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18167:23:7;;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;18159:71:::1;;;;-1:-1:-1::0;;;18159:71:7::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18306:20:7;::::1;::::0;18303:203:::1;;18353:48;::::0;-1:-1:-1;;;18353:48:7;;-1:-1:-1;;;;;18353:23:7;::::1;::::0;::::1;::::0;:48:::1;::::0;18377:9;;18388:12;;18353:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18303:203;;;18449:37;::::0;-1:-1:-1;;;;;18449:23:7;::::1;::::0;:37;::::1;;;::::0;18473:12;;18449:37:::1;::::0;;;18473:12;18449:23;:37;::::1;;;;;;18441:65;;;;-1:-1:-1::0;;;18441:65:7::1;;;;;;;:::i;:::-;18521:61;::::0;-1:-1:-1;;;18521:61:7;;-1:-1:-1;;;;;18521:29:7;::::1;::::0;::::1;::::0;:61:::1;::::0;18551:12;;18565:6;;18573:8;;18521:61:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18616:9;-1:-1:-1::0;;;;;18598:72:7::1;;18627:8;18637:10;18649:6;18657:12;18598:72;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;18737:22:7;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40;18724:66:::1;::::0;18779:10;18724:12:::1;:66::i;:::-;-1:-1:-1::0;;;;;18681:22:7;;::::1;;::::0;;;:11:::1;:22;::::0;;;;;;;:109;;;;18817:12:::1;:23:::0;;;;;:33;;::::1;::::0;;;;;;;;18931:21;;;:10:::1;:21:::0;;;;;:29;;::::1;::::0;;;;;;;;:36;;;;;;;;;:54;18918:82:::1;::::0;18987:12;18918::::1;:82::i;:::-;-1:-1:-1::0;;;;;18861:21:7;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;:29;;;::::1;::::0;;;;;;;;:36;;;;;;;;;:139;;;;-1:-1:-1;;;;19011:17:7;;;-1:-1:-1;;19011:4:7::1;:17:::0;;;:25;;-1:-1:-1;;19011:25:7::1;::::0;;17838:1206::o;15275:197::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;15397:67:7::1;15408:9;15419:6;15427:12;15441:10;15453;15397;:67::i;12617:1694::-:0;12686:9;;:12;12683:98;;12733:15;12721:9;;:27;12713:68;;;;-1:-1:-1;;;12713:68:7;;;;;;;:::i;:::-;12800:8;:6;:8::i;:::-;:17;12792:54;;;;-1:-1:-1;;;12792:54:7;;;;;;;:::i;:::-;-1:-1:-1;;;;;12889:18:7;;12857:10;12889:18;;;:10;:18;;;;;;:20;12886:50;;-1:-1:-1;12932:4:7;12886:50;12950:5;12947:1357;;;-1:-1:-1;;;12980:11:7;;:4;:11;;;;;;12979:12;12971:53;;;;-1:-1:-1;;;12971:53:7;;;;;;;:::i;:::-;-1:-1:-1;;;13039:11:7;;:4;:11;;;:18;;-1:-1:-1;;13039:18:7;13053:4;13039:18;;;:11;13075:63;-1:-1:-1;;;13075:63:7;;-1:-1:-1;;;;;13075:27:7;;;;;:63;;13103:10;;13123:4;;13130:7;;13075:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13072:1187;;;13176:10;-1:-1:-1;;;;;13163:58:7;;13188:6;13196:7;13205:15;13163:58;;;;;;;;:::i;:::-;;;;;;;;13251:10;13243:19;;;;:7;:19;;;;;;13240:144;;13289:3;:20;;;;;;;;;;;-1:-1:-1;;;;;;13289:20:7;13298:10;13289:20;;;;;;13354:10;;-1:-1:-1;13332:19:7;;;:7;13289:20;13332:19;;;;;:32;13240:144;13415:10;13405:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13405:29:7;;;;;;;;;:41;13402:324;;13473:29;13505:160;;;;;;;;13573:6;-1:-1:-1;;;;;13567:18:7;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13567:20:7;;;;;;;;;;;;:::i;:::-;13505:160;;13631:10;13505:160;;;;;13688:9;:18;;;;;;;-1:-1:-1;13688:18:7;;;;;;;;13473:192;;-1:-1:-1;13473:192:7;;13688:18;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13688:18:7;;;;;;;;;;;;-1:-1:-1;;;;;;13688:18:7;-1:-1:-1;;;;;13688:18:7;;;;;;;;;-1:-1:-1;13402:324:7;13811:10;13801:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13801:29:7;;;;;;;;;:41;13788:64;;13844:7;13788:12;:64::i;:::-;13754:10;13744:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13744:29:7;;;;;;;;;;;:108;;;13871:42;;;;:51;;-1:-1:-1;;;;;;13871:51:7;;;;;;;13960:12;:20;;;;:23;13957:287;;14007:148;14018:10;14030:6;14038:7;14047:98;14066:56;14075:7;14084:37;14113:6;14084:21;:37::i;14066:56::-;-1:-1:-1;;;;;14124:20:7;;;;;;:12;:20;;;;;;14047:18;:98::i;14007:148::-;-1:-1:-1;;;;;14183:41:7;;14203:20;;;;:12;:20;;;;;;;;14183:41;;;;;;;:::i;:::-;;;;;;;;13957:287;-1:-1:-1;;;14287:5:7;14273:11;:4;:11;;;:19;;-1:-1:-1;;14273:19:7;;;12617:1694;;;:::o;5766:110::-;5818:25;5862:6;5855:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5855:13:7;;;-1:-1:-1;;5855:13:7;;;;;-1:-1:-1;;;;;5855:13:7;;;;;;;;;;;;;;;;;22957:140;23063:5;;23056:33;;-1:-1:-1;;;23056:33:7;;23014:23;;-1:-1:-1;;;;;23063:5:7;;23056:23;;:33;;23080:8;;23056:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4558:139::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;4640:13:7::1;:20:::0;;;;4671:9:::1;:18:::0;4558:139::o;1846:189:0:-;1196:12;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1934:22:0;::::1;1926:73;;;;-1:-1:-1::0;;;1926:73:0::1;;;;;;;:::i;:::-;2009:19;2019:8;2009:9;:19::i;:::-;1846:189:::0;:::o;7337:518:7:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7447:33:7;::::1;;::::0;;;:13:::1;:33;::::0;;;;;7444:404:::1;;7530:136;::::0;;;;::::1;::::0;;;;;-1:-1:-1;;;;;7530:136:7;;::::1;;::::0;;::::1;::::0;;;7681:9:::1;:17:::0;;;;::::1;::::0;;-1:-1:-1;7681:17:7;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;-1:-1:-1;;;;;;7681:17:7::1;::::0;;;::::1;::::0;;;::::1;::::0;;;7749:16;7713:33;;;;;;;;;;:52;;;;7785:51;;7530:136;;;7785:51:::1;::::0;::::1;::::0;7530:136;;7785:51:::1;:::i;8786:1350::-:0;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8908:23:7;;::::1;8876:10;8908:23:::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;:36;8905:1224:::1;;-1:-1:-1::0;;;;;8974:19:7;::::1;8960:11;8974:19:::0;;;:8:::1;:19;::::0;;;;:26;;9015:1103:::1;9031:6;9029:1;:8;9015:1103;;;-1:-1:-1::0;;;;;9065:19:7;;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;:32;;::::1;::::0;9085:1;;9065:22;::::1;;;-1:-1:-1::0;;;9065:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9065:22:7::1;:32;9062:1041;;;-1:-1:-1::0;;;;;9127:19:7;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;:28:::1;::::0;9154:1:::1;::::0;9127:28:::1;:::i;:::-;9124:1;:31;9121:427;;;-1:-1:-1::0;;;;;9189:19:7;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;9209:1;;9189:22;::::1;;;-1:-1:-1::0;;;9189:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;9182:29:::0;;-1:-1:-1;;;;;;9182:29:7::1;::::0;;-1:-1:-1;;;;;9237:23:7;;::::1;::::0;;:12:::1;:23:::0;;;;;;:33;;::::1;::::0;;;;;;:37;9121:427:::1;;;-1:-1:-1::0;;;;;9373:19:7;::::1;;::::0;;;:8:::1;:19;::::0;;;;9393:3:::1;:1:::0;9395::::1;9393:3;:::i;:::-;9373:24;;;;;;-1:-1:-1::0;;;9373:24:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;9350:19:7;;::::1;::::0;;:8:::1;:19:::0;;;;;;;:22;;9373:24;;;::::1;::::0;9350:19;9370:1;;9350:22;::::1;;;-1:-1:-1::0;;;9350:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:47:::0;;-1:-1:-1;;;;;;9350:47:7::1;-1:-1:-1::0;;;;;9350:47:7;;::::1;;::::0;;9473:23;;::::1;::::0;;:12:::1;:23:::0;;;;;;9497:8:::1;:19:::0;;;;;:22;;-1:-1:-1;;9473:23:7;9350:22;9497:19;9517:1;;9497:22;::::1;;;-1:-1:-1::0;;;9497:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;9497:22:7::1;9473:47:::0;;;::::1;::::0;;;;;;;;;:51:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;9423:23:7;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;9447:8:::1;:19:::0;;;;;:22;;9423:23;;;9467:1;;9447:22;::::1;;;-1:-1:-1::0;;;9447:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;9447:22:7::1;9423:47:::0;;;::::1;::::0;;;;;;;;:101;9121:427:::1;9578:4;9570:12;;9062:1041;;;9628:5;9625:478;;;-1:-1:-1::0;;;;;9663:19:7;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;:28:::1;::::0;9690:1:::1;::::0;9663:28:::1;:::i;:::-;9660:1;:31;9657:427;;;-1:-1:-1::0;;;;;9725:19:7;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;9745:1;;9725:22;::::1;;;-1:-1:-1::0;;;9725:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;9718:29:::0;;-1:-1:-1;;;;;;9718:29:7::1;::::0;;-1:-1:-1;;;;;9773:23:7;;::::1;::::0;;:12:::1;:23:::0;;;;;;:33;;::::1;::::0;;;;;;:37;9657:427:::1;;;-1:-1:-1::0;;;;;9909:19:7;::::1;;::::0;;;:8:::1;:19;::::0;;;;9929:3:::1;:1:::0;9931::::1;9929:3;:::i;:::-;9909:24;;;;;;-1:-1:-1::0;;;9909:24:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;9886:19:7;;::::1;::::0;;:8:::1;:19:::0;;;;;;;:22;;9909:24;;;::::1;::::0;9886:19;9906:1;;9886:22;::::1;;;-1:-1:-1::0;;;9886:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:47:::0;;-1:-1:-1;;;;;;9886:47:7::1;-1:-1:-1::0;;;;;9886:47:7;;::::1;;::::0;;10009:23;;::::1;::::0;;:12:::1;:23:::0;;;;;;10033:8:::1;:19:::0;;;;;:22;;-1:-1:-1;;10009:23:7;9886:22;10033:19;10053:1;;10033:22;::::1;;;-1:-1:-1::0;;;10033:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;10033:22:7::1;10009:47:::0;;;::::1;::::0;;;;;;;;;:51:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;9959:23:7;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;9983:8:::1;:19:::0;;;;;:22;;9959:23;;;10003:1;;9983:22;::::1;;;-1:-1:-1::0;;;9983:22:7::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;9983:22:7::1;9959:47:::0;;;::::1;::::0;;;;;;;;:101;9657:427:::1;9039:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9015:1103;;;;8905:1224;1255:1:0;8786:1350:7::0;;:::o;940:103:13:-;1010:9;1005:34;;1021:18;1029:9;1021:7;:18::i;3039:96:6:-;3097:7;3123:5;3127:1;3123;:5;:::i;24660:432:7:-;24728:7;24829:21;24867:5;-1:-1:-1;;;;;24853:30:7;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24829:56;;;;24971:26;25000:27;25009:2;25013:13;25000:8;:27::i;:::-;24971:56;-1:-1:-1;25062:22:7;24971:56;25062:2;:22;:::i;:::-;25045:39;;907:4:14;25045:39:7;:::i;25632:156::-;25712:7;25739:41;25758:6;25766:13;25739:18;:41::i;25302:162::-;25388:7;25415:41;25434:6;25442:13;25415:18;:41::i;587:96:5:-;666:10;587:96;:::o;2646:378:14:-;2708:7;2728:38;2737:6;;;5425:1:13;2728:8:14;:38::i;:::-;2783:6;2779:238;;-1:-1:-1;2813:1:14;2806:8;;2779:238;2847:17;2867:7;907:4;2867:1;:7;:::i;:::-;2847:27;-1:-1:-1;2889:51:14;907:4;2898:13;2910:1;2847:27;2898:13;:::i;:::-;:20;5474:1:13;2889:8:14;:51::i;:::-;2992:13;3004:1;2992:9;:13;:::i;:::-;2985:20;;;;;2053:117:1;1620:8;:6;:8::i;:::-;1612:41;;;;-1:-1:-1;;;1612:41:1;;;;;;;:::i;:::-;2121:5:::1;2111:15:::0;;-1:-1:-1;;;;2111:15:1::1;::::0;;2141:22:::1;2150:12;:10;:12::i;:::-;2141:22;;;;;;:::i;:::-;;;;;;;;2053:117::o:0;2041:169:0:-;2096:16;2115:6;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;2163:40;;2115:6;;;;;;;2163:40;;2096:16;2163:40;2041:169;;:::o;1806:115:1:-;1355:8;:6;:8::i;:::-;1354:9;1346:38;;;;-1:-1:-1;;;1346:38:1;;;;;;;:::i;:::-;1865:7:::1;:14:::0;;-1:-1:-1;;;;1865:14:1::1;-1:-1:-1::0;;;1865:14:1::1;::::0;;1894:20:::1;1901:12;:10;:12::i;10423:349:7:-:0;10525:6;:13;10482:10;;;10549:151;10568:6;10566:1;:8;10549:151;;;-1:-1:-1;;;;;10598:19:7;;10656:1;10598:19;;;:9;:19;;;;;10618:6;:9;;10656:1;;10618:6;10625:1;;10618:9;;;;-1:-1:-1;;;10618:9:7;;;;;;;;;;;;;;;;;:22;:9;;;;;:22;;;;;-1:-1:-1;;;;;10618:22:7;10598:43;;;;;;;;;;;;:55;:59;10595:93;;;10684:4;10676:12;;10595:93;10576:3;;;;:::i;:::-;;;;10549:151;;;;10714:5;10710:55;;10735:3;:18;;;;;;;-1:-1:-1;10735:18:7;;;;;;;;-1:-1:-1;;;;;10735:18:7;;-1:-1:-1;;;;;;10735:18:7;;;;;;10423:349;;;:::o;1475:128:13:-;1523:28;1531:9;-1:-1:-1;;;1523:7:13;:28::i;1171:170:16:-;1229:7;1249:37;1263:1;1258;:6;;5276:1:13;1249:8:16;:37::i;:::-;1297:9;1309:5;1313:1;1309;:5;:::i;1715:3432:13:-;-1:-1:-1;;;1778:18:13;4470:79;;;4690:66;4684:4;4677:80;4834:1;4828:4;4821:15;2933:2;2968:18;;;3014;;;2938:4;3010:29;;;3824:1;3917:14;2918:18;;;;3906:26;;;;3064:18;;;;3112;;;3108:29;;3938:2;3934:17;3902:50;3814:4;3820:18;;;;;;3810:29;3806:2;3802:38;3881:72;;;;3876:3;3872:82;4903:4;4896:26;1807:14;;;;;5133:3;;5123:14;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:175:17;84:20;;-1:-1:-1;;;;;133:31:17;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:350::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;980:40;1016:2;1005:9;1001:18;980:40;:::i;:::-;970:50;;780:246;;;;;:::o;1031:342::-;;;;1177:2;1165:9;1156:7;1152:23;1148:32;1145:2;;;1198:6;1190;1183:22;1145:2;1226:31;1247:9;1226:31;:::i;:::-;1216:41;;1276:40;1312:2;1301:9;1297:18;1276:40;:::i;:::-;1266:50;;1363:2;1352:9;1348:18;1335:32;1325:42;;1135:238;;;;;:::o;1378:488::-;;;;;;1558:3;1546:9;1537:7;1533:23;1529:33;1526:2;;;1580:6;1572;1565:22;1526:2;1608:31;1629:9;1608:31;:::i;:::-;1598:41;;1658:40;1694:2;1683:9;1679:18;1658:40;:::i;:::-;1648:50;;1745:2;1734:9;1730:18;1717:32;1707:42;;1768:40;1804:2;1793:9;1789:18;1768:40;:::i;:::-;1516:350;;;;-1:-1:-1;1516:350:17;;1855:3;1840:19;1827:33;;1516:350;-1:-1:-1;;1516:350:17:o;1871:411::-;;;;;2034:3;2022:9;2013:7;2009:23;2005:33;2002:2;;;2056:6;2048;2041:22;2002:2;2084:31;2105:9;2084:31;:::i;:::-;2074:41;;2134:40;2170:2;2159:9;2155:18;2134:40;:::i;:::-;1992:290;;2124:50;;-1:-1:-1;;;;2221:2:17;2206:18;;2193:32;;2272:2;2257:18;2244:32;;1992:290::o;2287:266::-;;;2416:2;2404:9;2395:7;2391:23;2387:32;2384:2;;;2437:6;2429;2422:22;2384:2;2465:31;2486:9;2465:31;:::i;:::-;2455:41;2543:2;2528:18;;;;2515:32;;-1:-1:-1;;;2374:179:17:o;2558:795::-;;;2697:2;2685:9;2676:7;2672:23;2668:32;2665:2;;;2718:6;2710;2703:22;2665:2;2746:31;2767:9;2746:31;:::i;:::-;2736:41;;2828:2;2817:9;2813:18;2800:32;2855:18;2847:6;2844:30;2841:2;;;2892:6;2884;2877:22;2841:2;2920:22;;2973:4;2965:13;;2961:27;-1:-1:-1;2951:2:17;;3007:6;2999;2992:22;2951:2;3048;3035:16;3073:50;3088:34;3119:2;3088:34;:::i;:::-;3073:50;:::i;:::-;3146:2;3139:5;3132:17;3186:7;3181:2;3176;3172;3168:11;3164:20;3161:33;3158:2;;;3212:6;3204;3197:22;3158:2;3272;3267;3263;3259:11;3254:2;3247:5;3243:14;3230:45;3295:14;;;3311:2;3291:23;3284:39;;;;-1:-1:-1;2655:698:17;;3299:5;;-1:-1:-1;2655:698:17;-1:-1:-1;2655:698:17:o;3629:297::-;;3749:2;3737:9;3728:7;3724:23;3720:32;3717:2;;;3770:6;3762;3755:22;3717:2;3807:9;3801:16;3860:5;3853:13;3846:21;3839:5;3836:32;3826:2;;3887:6;3879;3872:22;3826:2;3915:5;3707:219;-1:-1:-1;;;3707:219:17:o;3931:677::-;;4064:2;4052:9;4043:7;4039:23;4035:32;4032:2;;;4085:6;4077;4070:22;4032:2;4123:9;4117:16;4156:18;4148:6;4145:30;4142:2;;;4193:6;4185;4178:22;4142:2;4221:22;;4274:4;4266:13;;4262:27;-1:-1:-1;4252:2:17;;4308:6;4300;4293:22;4252:2;4342;4336:9;4367:50;4382:34;4413:2;4382:34;:::i;4367:50::-;4440:2;4433:5;4426:17;4480:7;4475:2;4470;4466;4462:11;4458:20;4455:33;4452:2;;;4506:6;4498;4491:22;4452:2;4524:54;4575:2;4570;4563:5;4559:14;4554:2;4550;4546:11;4524:54;:::i;:::-;4597:5;4022:586;-1:-1:-1;;;;;4022:586:17:o;4613:190::-;;4725:2;4713:9;4704:7;4700:23;4696:32;4693:2;;;4746:6;4738;4731:22;4693:2;-1:-1:-1;4774:23:17;;4683:120;-1:-1:-1;4683:120:17:o;4808:194::-;;4931:2;4919:9;4910:7;4906:23;4902:32;4899:2;;;4952:6;4944;4937:22;4899:2;-1:-1:-1;4980:16:17;;4889:113;-1:-1:-1;4889:113:17:o;5007:266::-;;;5136:2;5124:9;5115:7;5111:23;5107:32;5104:2;;;5157:6;5149;5142:22;5104:2;5198:9;5185:23;5175:33;;5227:40;5263:2;5252:9;5248:18;5227:40;:::i;5278:342::-;;;;5424:2;5412:9;5403:7;5399:23;5395:32;5392:2;;;5445:6;5437;5430:22;5392:2;5486:9;5473:23;5463:33;;5515:40;5551:2;5540:9;5536:18;5515:40;:::i;5625:258::-;;;5754:2;5742:9;5733:7;5729:23;5725:32;5722:2;;;5775:6;5767;5760:22;5722:2;-1:-1:-1;;5803:23:17;;;5873:2;5858:18;;;5845:32;;-1:-1:-1;5712:171:17:o;5888:293::-;;6009:2;5997:9;5988:7;5984:23;5980:32;5977:2;;;6030:6;6022;6015:22;5977:2;6067:9;6061:16;6117:4;6110:5;6106:16;6099:5;6096:27;6086:2;;6142:6;6134;6127:22;6186:260;;6268:5;6262:12;6295:6;6290:3;6283:19;6311:63;6367:6;6360:4;6355:3;6351:14;6344:4;6337:5;6333:16;6311:63;:::i;:::-;6428:2;6407:15;-1:-1:-1;;6403:29:17;6394:39;;;;6435:4;6390:50;;6238:208;-1:-1:-1;;6238:208:17:o;6451:308::-;;6549:5;6543:12;6576:4;6571:3;6564:17;6602:49;6645:4;6640:3;6636:14;6622:12;6602:49;:::i;:::-;6704:4;6693:16;;;6687:23;-1:-1:-1;;;;;6683:49:17;6667:14;;;;6660:73;;;;-1:-1:-1;6590:61:17;6513:246;-1:-1:-1;6513:246:17:o;6764:203::-;-1:-1:-1;;;;;6928:32:17;;;;6910:51;;6898:2;6883:18;;6865:102::o;6972:375::-;-1:-1:-1;;;;;7230:15:17;;;7212:34;;7282:15;;;;7277:2;7262:18;;7255:43;7329:2;7314:18;;7307:34;;;;7162:2;7147:18;;7129:218::o;7352:274::-;-1:-1:-1;;;;;7544:32:17;;;;7526:51;;7608:2;7593:18;;7586:34;7514:2;7499:18;;7481:145::o;7631:447::-;-1:-1:-1;;;;;7918:15:17;;;7900:34;;7965:2;7950:18;;7943:34;;;;8013:15;;8008:2;7993:18;;7986:43;8060:2;8045:18;;8038:34;;;;7849:3;7834:19;;7816:262::o;8083:345::-;-1:-1:-1;;;;;8303:32:17;;;;8285:51;;8367:2;8352:18;;8345:34;;;;8410:2;8395:18;;8388:34;8273:2;8258:18;;8240:188::o;8433:661::-;8604:2;8656:21;;;8726:13;;8629:18;;;8748:22;;;8433:661;;8604:2;8827:15;;;;8801:2;8786:18;;;8433:661;8873:195;8887:6;8884:1;8881:13;8873:195;;;8952:13;;-1:-1:-1;;;;;8948:39:17;8936:52;;9043:15;;;;9008:12;;;;8984:1;8902:9;8873:195;;;-1:-1:-1;9085:3:17;;8584:510;-1:-1:-1;;;;;;8584:510:17:o;9099:819::-;9322:2;9374:21;;;9444:13;;9347:18;;;9466:22;;;9099:819;;9322:2;9507;;9525:18;;;;9566:15;;;9099:819;9612:280;9626:6;9623:1;9620:13;9612:280;;;9685:13;;9723:9;;9711:22;;9777:11;;9771:18;-1:-1:-1;;;;;9767:44:17;9753:12;;;9746:66;9832:12;;;;9867:15;;;;9808:1;9641:9;9612:280;;;-1:-1:-1;9909:3:17;;9302:616;-1:-1:-1;;;;;;;9302:616:17:o;9923:851::-;;10146:2;10186;10175:9;10171:18;10216:2;10205:9;10198:21;10239:6;10274;10268:13;10305:6;10297;10290:22;10343:2;10332:9;10328:18;10321:25;;10406:2;10400;10392:6;10388:15;10377:9;10373:31;10369:40;10355:54;;10444:2;10436:6;10432:15;10465:4;10478:267;10492:6;10489:1;10486:13;10478:267;;;10585:2;10581:7;10569:9;10561:6;10557:22;10553:36;10548:3;10541:49;10613:52;10658:6;10649;10643:13;10613:52;:::i;:::-;10603:62;-1:-1:-1;10723:12:17;;;;10688:15;;;;10514:1;10507:9;10478:267;;;-1:-1:-1;10762:6:17;;10126:648;-1:-1:-1;;;;;;;10126:648:17:o;10779:845::-;;10996:2;11036;11025:9;11021:18;11066:2;11055:9;11048:21;11089:6;11124;11118:13;11155:6;11147;11140:22;11193:2;11182:9;11178:18;11171:25;;11256:2;11250;11242:6;11238:15;11227:9;11223:31;11219:40;11205:54;;11294:2;11286:6;11282:15;11315:4;11328:267;11342:6;11339:1;11336:13;11328:267;;;11435:2;11431:7;11419:9;11411:6;11407:22;11403:36;11398:3;11391:49;11463:52;11508:6;11499;11493:13;11463:52;:::i;:::-;11453:62;-1:-1:-1;11573:12:17;;;;11538:15;;;;11364:1;11357:9;11328:267;;11629:187;11794:14;;11787:22;11769:41;;11757:2;11742:18;;11724:92::o;11821:177::-;11967:25;;;11955:2;11940:18;;11922:76::o;12003:222::-;;12152:2;12141:9;12134:21;12172:47;12215:2;12204:9;12200:18;12192:6;12172:47;:::i;12230:344::-;12432:2;12414:21;;;12471:2;12451:18;;;12444:30;-1:-1:-1;;;12505:2:17;12490:18;;12483:50;12565:2;12550:18;;12404:170::o;12579:402::-;12781:2;12763:21;;;12820:2;12800:18;;;12793:30;12859:34;12854:2;12839:18;;12832:62;-1:-1:-1;;;12925:2:17;12910:18;;12903:36;12971:3;12956:19;;12753:228::o;12986:339::-;13188:2;13170:21;;;13227:2;13207:18;;;13200:30;-1:-1:-1;;;13261:2:17;13246:18;;13239:45;13316:2;13301:18;;13160:165::o;13330:353::-;13532:2;13514:21;;;13571:2;13551:18;;;13544:30;13610:31;13605:2;13590:18;;13583:59;13674:2;13659:18;;13504:179::o;13688:341::-;13890:2;13872:21;;;13929:2;13909:18;;;13902:30;-1:-1:-1;;;13963:2:17;13948:18;;13941:47;14020:2;14005:18;;13862:167::o;14034:344::-;14236:2;14218:21;;;14275:2;14255:18;;;14248:30;-1:-1:-1;;;14309:2:17;14294:18;;14287:50;14369:2;14354:18;;14208:170::o;14383:348::-;14585:2;14567:21;;;14624:2;14604:18;;;14597:30;14663:26;14658:2;14643:18;;14636:54;14722:2;14707:18;;14557:174::o;14736:340::-;14938:2;14920:21;;;14977:2;14957:18;;;14950:30;-1:-1:-1;;;15011:2:17;14996:18;;14989:46;15067:2;15052:18;;14910:166::o;15081:343::-;15283:2;15265:21;;;15322:2;15302:18;;;15295:30;-1:-1:-1;;;15356:2:17;15341:18;;15334:49;15415:2;15400:18;;15255:169::o;15429:356::-;15631:2;15613:21;;;15650:18;;;15643:30;15709:34;15704:2;15689:18;;15682:62;15776:2;15761:18;;15603:182::o;15790:337::-;15992:2;15974:21;;;16031:2;16011:18;;;16004:30;-1:-1:-1;;;16065:2:17;16050:18;;16043:43;16118:2;16103:18;;15964:163::o;16132:346::-;16334:2;16316:21;;;16373:2;16353:18;;;16346:30;-1:-1:-1;;;16407:2:17;16392:18;;16385:52;16469:2;16454:18;;16306:172::o;16483:343::-;16685:2;16667:21;;;16724:2;16704:18;;;16697:30;-1:-1:-1;;;16758:2:17;16743:18;;16736:49;16817:2;16802:18;;16657:169::o;16831:353::-;17033:2;17015:21;;;17072:2;17052:18;;;17045:30;17111:31;17106:2;17091:18;;17084:59;17175:2;17160:18;;17005:179::o;17189:352::-;17391:2;17373:21;;;17430:2;17410:18;;;17403:30;17469;17464:2;17449:18;;17442:58;17532:2;17517:18;;17363:178::o;17546:352::-;17748:2;17730:21;;;17787:2;17767:18;;;17760:30;17826;17821:2;17806:18;;17799:58;17889:2;17874:18;;17720:178::o;17903:350::-;18105:2;18087:21;;;18144:2;18124:18;;;18117:30;18183:28;18178:2;18163:18;;18156:56;18244:2;18229:18;;18077:176::o;18258:346::-;18460:2;18442:21;;;18499:2;18479:18;;;18472:30;-1:-1:-1;;;18533:2:17;18518:18;;18511:52;18595:2;18580:18;;18432:172::o;18791:375::-;18993:25;;;-1:-1:-1;;;;;19092:15:17;;;19087:2;19072:18;;19065:43;19144:15;19139:2;19124:18;;19117:43;18981:2;18966:18;;18948:218::o;19171:248::-;19345:25;;;19401:2;19386:18;;19379:34;19333:2;19318:18;;19300:119::o;19424:251::-;19494:2;19488:9;19524:17;;;19571:18;19556:34;;19592:22;;;19553:62;19550:2;;;19618:18;;:::i;:::-;19654:2;19647:22;19468:207;;-1:-1:-1;19468:207:17:o;19680:191::-;;19764:18;19756:6;19753:30;19750:2;;;19786:18;;:::i;:::-;-1:-1:-1;19854:2:17;19831:17;-1:-1:-1;;19827:31:17;19860:4;19823:42;;19740:131::o;19876:128::-;;19947:1;19943:6;19940:1;19937:13;19934:2;;;19953:18;;:::i;:::-;-1:-1:-1;19989:9:17;;19924:80::o;20009:217::-;;20075:1;20065:2;;-1:-1:-1;;;20100:31:17;;20154:4;20151:1;20144:15;20182:4;20107:1;20172:15;20065:2;-1:-1:-1;20211:9:17;;20055:171::o;20231:453::-;20327:6;20350:5;20364:314;20413:1;20450:2;20440:8;20437:16;20427:2;;20457:5;;;20427:2;20498:4;20493:3;20489:14;20483:4;20480:24;20477:2;;;20507:18;;:::i;:::-;20557:2;20547:8;20543:17;20540:2;;;20572:16;;;;20540:2;20651:17;;;;;20611:15;;20364:314;;;20308:376;;;;;;;:::o;20689:139::-;;20778:44;-1:-1:-1;;20805:8:17;20799:4;20833:922;20917:8;20907:2;;-1:-1:-1;20958:1:17;20972:5;;20907:2;21006:4;20996:2;;-1:-1:-1;21043:1:17;21057:5;;20996:2;21088:4;21106:1;21101:59;;;;21174:1;21169:183;;;;21081:271;;21101:59;21131:1;21122:10;;21145:5;;;21169:183;21206:3;21196:8;21193:17;21190:2;;;21213:18;;:::i;:::-;21269:1;21259:8;21255:16;21246:25;;21297:3;21290:5;21287:14;21284:2;;;21304:18;;:::i;:::-;21337:5;;;21081:271;;21436:2;21426:8;21423:16;21417:3;21411:4;21408:13;21404:36;21398:2;21388:8;21385:16;21380:2;21374:4;21371:12;21367:35;21364:77;21361:2;;;-1:-1:-1;21473:19:17;;;21508:14;;;21505:2;;;21525:18;;:::i;:::-;21558:5;;21361:2;21605:42;21643:3;21633:8;21627:4;21624:1;21605:42;:::i;:::-;21680:6;21675:3;21671:16;21662:7;21659:29;21656:2;;;21691:18;;:::i;:::-;21729:20;;20897:858;-1:-1:-1;;;;20897:858:17:o;21760:168::-;;21866:1;21862;21858:6;21854:14;21851:1;21848:21;21843:1;21836:9;21829:17;21825:45;21822:2;;;21873:18;;:::i;:::-;-1:-1:-1;21913:9:17;;21812:116::o;21933:125::-;;22001:1;21998;21995:8;21992:2;;;22006:18;;:::i;:::-;-1:-1:-1;22043:9:17;;21982:76::o;22063:258::-;22135:1;22145:113;22159:6;22156:1;22153:13;22145:113;;;22235:11;;;22229:18;22216:11;;;22209:39;22181:2;22174:10;22145:113;;;22276:6;22273:1;22270:13;22267:2;;;-1:-1:-1;;22311:1:17;22293:16;;22286:27;22116:205::o;22326:380::-;22411:1;22401:12;;22458:1;22448:12;;;22469:2;;22523:4;22515:6;22511:17;22501:27;;22469:2;22576;22568:6;22565:14;22545:18;22542:38;22539:2;;;22622:10;22617:3;22613:20;22610:1;22603:31;22657:4;22654:1;22647:15;22685:4;22682:1;22675:15;22539:2;;22381:325;;;:::o;22711:135::-;;-1:-1:-1;;22771:17:17;;22768:2;;;22791:18;;:::i;:::-;-1:-1:-1;22838:1:17;22827:13;;22758:88::o;22851:127::-;22912:10;22907:3;22903:20;22900:1;22893:31;22943:4;22940:1;22933:15;22967:4;22964:1;22957:15;22983:127;23044:10;23039:3;23035:20;23032:1;23025:31;23075:4;23072:1;23065:15;23099:4;23096:1;23089:15","source":"// Verified Liquidity Manager \\r\\n// (c) Kallol Borah, 2021\\r\\n\\r\\n//\\"SPDX-License-Identifier: UNLICENSED\\"\\r\\n\\r\\npragma solidity 0.8.0;\\r\\n\\r\\nimport \\"@openzeppelin/contracts/access/Ownable.sol\\";\\r\\nimport \\"@openzeppelin/contracts/security/Pausable.sol\\";\\r\\n\\r\\nimport \\"@openzeppelin/contracts/token/ERC20/IERC20.sol\\";\\r\\nimport \\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\";\\r\\n\\r\\nimport \\"@openzeppelin/contracts/utils/math/SafeMath.sol\\";\\r\\n\\r\\nimport \\"./interfaces/IMarketMaker.sol\\";\\r\\nimport \\"./interfaces/ILiquidity.sol\\";\\r\\nimport \\"./interfaces/IVitta.sol\\";\\r\\n\\r\\nimport \\"./math/FixedPoint.sol\\";\\r\\nimport \\"./math/Math.sol\\";\\r\\n\\r\\ncontract Liquidity is Ownable, Pausable {\\r\\n\\r\\n    using SafeMath for uint256;\\r\\n    using FixedPoint for uint256;\\r\\n\\r\\n    ILiquidity.platform[] private platforms;\\r\\n    mapping(address => uint256) private platformIndex;\\r\\n\\r\\n    ILiquidity.token[] private tokens;\\r\\n    mapping(address => uint256) private tokenIndex;\\r\\n    \\r\\n    ILiquidity.provider[] private providers;\\r\\n    address[] private LPs;\\r\\n\\r\\n    uint256 private investmentCap=0;\\r\\n    uint256 private timeLimit=0;    \\r\\n    uint256 private totalIssued=0;\\r\\n\\r\\n    address private vitta;\\r\\n\\r\\n    //for share of liquidity staked with Verified\\r\\n    address private treasury;\\r\\n    uint256 private liquidityShare;\\r\\n\\r\\n    struct investment{\\r\\n        uint256 tokenAmount;\\r\\n        address tokenAddress;\\r\\n    }    \\r\\n\\r\\n    struct performance{\\r\\n        uint256 liquidityProvided;\\r\\n        uint256 commissionsEarned;\\r\\n    }\\r\\n\\r\\n    // mapping investor to invested tokens\\r\\n    mapping(address => mapping(address => investment)) private investors;\\r\\n    // mapping investor to liquidity tokens issued and staked\\r\\n    mapping(address => uint256) private stakes;    \\r\\n    // mapping platform to asset managers on it\\r\\n    mapping(address => address[]) private managers; \\r\\n    // mapping platform to asset manager\'s position in it\\r\\n    mapping(address => mapping(address => uint256)) private managerIndex;\\r\\n    // mapping platform to address of token distributed by manager to asset manager index to performance of liquidity provided\\r\\n    mapping(address => mapping(address => mapping(uint256 => performance))) private managerRoi;\\r\\n    // mapping platform to performance\\r\\n    mapping(address => performance) private platformRoi;\\r\\n    // exchange rate of support token to vitta\\r\\n    mapping(address => uint256) private exchangeRate;\\r\\n    // indexing liquidity providers\\r\\n    mapping(address => uint256) private LPIndex;\\r\\n\\r\\n    // oracle\\r\\n    address private oracle;\\r\\n\\r\\n    modifier onlyOracle(address sender){\\r\\n        require(oracle==sender, \\"Unauthorized oracle\\");\\r\\n        _;\\r\\n    }\\r\\n\\r\\n    modifier onlyTreasurer(address sender){\\r\\n        require(treasury==sender, \\"Unauthorized treasurer\\");\\r\\n        _;\\r\\n    }\\r\\n\\r\\n    //mutex\\r\\n    mapping(bytes32 => bool) private lock;\\r\\n\\r\\n    event SupportToken(address indexed token, string tokenName);\\r\\n    event RegisterPlatform(address indexed platform, bytes32 platformName);\\r\\n    event PlatformManagers(address indexed platform, address manager);\\r\\n    event RequestRate(address indexed token, uint256 amount);\\r\\n    event RequestIssue(address indexed investor, address token, uint256 tokenAmount, uint256 timestamp);\\r\\n    event IssuedVitta(address indexed investor, address token, uint256 tokenAmount, uint256 LPToIssue);\\r\\n    event PlatformLiquidity(address indexed platform, address manager, uint256 LPToken, address token, uint256 tokenAmount);\\r\\n    event ManagerReturns(address indexed platform, address indexed manager, address token, uint256 distribution);\\r\\n    event PlatformReturns(address indexed platform, address vitta, uint256 distribution);\\r\\n    event InvestorReturns(address indexed platform, address indexed investor, address vitta, uint256 prorataStake, uint256 timestamp);\\r\\n      \\r\\n    /**\\r\\n        Constructor for the Verified Liquidity manager\\r\\n        @param  _cap    investment limit for each investor\\r\\n        @param  _limit  time limit for issue close\\r\\n        @param  _vitta  address of Verified liquidity token\\r\\n     */\\r\\n    constructor(uint256 _cap, uint256 _limit, uint256 _share, address _vitta){        \\r\\n        investmentCap = _cap;\\r\\n        timeLimit = _limit;\\r\\n        totalIssued = 0;\\r\\n        liquidityShare = _share;\\r\\n        vitta = _vitta; \\r\\n        treasury = owner();       \\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Updates investment and time limits for Verified Liquidity token after initial issue with constructor defined parameters\\r\\n        @param  _cap    investment limit for each investor\\r\\n        @param  _limit  time limit for issue close \\r\\n     */\\r\\n    function createSupply(uint256 _cap, uint256 _limit) external onlyOwner {\\r\\n        investmentCap = _cap;\\r\\n        timeLimit = _limit;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Specifies list of supported tokens that can be invested in the Verified Liquidity token\\r\\n        @param  _token  address of token supported\\r\\n        @param  _name   name of token supported\\r\\n     */\\r\\n    function supportTokens(address _token, string memory _name) external onlyOwner {\\r\\n        if(tokenIndex[_token]==0){\\r\\n            ILiquidity.token memory t = ILiquidity.token({\\r\\n                tokenName: _name,\\r\\n                tokenAddress: _token\\r\\n            });\\r\\n            tokens.push(t);\\r\\n            tokenIndex[_token] = tokens.length;\\r\\n            emit SupportToken(_token, _name);\\r\\n        }\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Checks if a specified token is supported for investing in the Verified Liquidity token\\r\\n        @param  _token  token that is supported for investment\\r\\n     */\\r\\n    function checkSupportForToken(address _token) external view returns(bool){\\r\\n        if(tokenIndex[_token]>0)\\r\\n            return true;\\r\\n        else\\r\\n            return false;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Returns list of supported tokens\\r\\n     */\\r\\n    function getSupportedTokens() external view returns(ILiquidity.token[] memory){\\r\\n        return tokens;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Removes a supported token\\r\\n     */\\r\\n    function removeToken(address _token) external onlyOwner {\\r\\n        bool found = false;\\r\\n        if(tokenIndex[_token]!=0){\\r\\n            uint length = tokens.length;\\r\\n            for(uint i=0; i<length; i++){\\r\\n                if(tokens[i].tokenAddress==_token){\\r\\n                    if(i==tokens.length-1){\\r\\n                       delete tokens[i];\\r\\n                       tokenIndex[_token] = 0;\\r\\n                    }\\r\\n                    else{\\r\\n                       tokens[i]=tokens[i+1];\\r\\n                       tokenIndex[tokens[i].tokenAddress] = tokenIndex[tokens[i].tokenAddress] - 1;\\r\\n                    }\\r\\n                    found = true;\\r\\n                }\\r\\n                else if(found){\\r\\n                    if(i==tokens.length-1){\\r\\n                       delete tokens[i];\\r\\n                       tokenIndex[_token] = 0;\\r\\n                    }\\r\\n                    else{\\r\\n                       tokens[i]=tokens[i+1];\\r\\n                       tokenIndex[tokens[i].tokenAddress] = tokenIndex[tokens[i].tokenAddress] - 1;\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\\r\\n        @param  _liquidityPlatform  address of the market making platform\\r\\n        @param  _platformName       name of market making platform\\r\\n     */\\r\\n    function registerPlatform(address _liquidityPlatform, bytes32 _platformName) external onlyOwner {\\r\\n        if(platformIndex[_liquidityPlatform]==0){\\r\\n            ILiquidity.platform memory p = ILiquidity.platform({\\r\\n                platformName: _platformName,\\r\\n                platformAddress: _liquidityPlatform\\r\\n            });\\r\\n            platforms.push(p);\\r\\n            platformIndex[_liquidityPlatform] = platforms.length;\\r\\n            emit RegisterPlatform(_liquidityPlatform, _platformName);\\r\\n        }\\r\\n    }\\r\\n    \\r\\n    /**\\r\\n        Gets list of registered platforms\\r\\n     */\\r\\n    function getPlatforms() external view returns(ILiquidity.platform[] memory){\\r\\n        return platforms;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Adds asset manager for managing liquidity\\r\\n        @param  _platform   address of market making platform (eg, Balancer)\\r\\n        @param  _manager    address of asset manager\\r\\n     */\\r\\n    function addManager(address _platform, address _manager) external onlyOwner {\\r\\n        if(managerIndex[_platform][_manager]==0){\\r\\n            managers[_platform].push(_manager);\\r\\n            managerIndex[_platform][_manager] = managers[_platform].length;\\r\\n            emit PlatformManagers(_platform, _manager);\\r\\n        }\\r\\n    } \\r\\n\\r\\n    /**\\r\\n        Removes asset manager for managing liquidity on platform\\r\\n        @param  _platform   address of market making platform\\r\\n        @param  _manager    address of asset manager\\r\\n     */\\r\\n    function removeManager(address _platform, address _manager) external onlyOwner {\\r\\n        bool found = false;\\r\\n        if(managerIndex[_platform][_manager]!=0){\\r\\n            uint length = managers[_platform].length;\\r\\n            for(uint i=0; i<length; i++){\\r\\n                if(managers[_platform][i]==_manager){\\r\\n                    if(i==managers[_platform].length-1){\\r\\n                       delete managers[_platform][i];\\r\\n                       managerIndex[_platform][_manager] = 0;\\r\\n                    }\\r\\n                    else{\\r\\n                       managers[_platform][i]=managers[_platform][i+1];\\r\\n                       managerIndex[_platform][managers[_platform][i]] = managerIndex[_platform][managers[_platform][i]] - 1;\\r\\n                    }\\r\\n                    found = true;\\r\\n                }\\r\\n                else if(found){\\r\\n                    if(i==managers[_platform].length-1){\\r\\n                       delete managers[_platform][i];\\r\\n                       managerIndex[_platform][_manager] = 0;\\r\\n                    }\\r\\n                    else{\\r\\n                       managers[_platform][i]=managers[_platform][i+1];\\r\\n                       managerIndex[_platform][managers[_platform][i]] = managerIndex[_platform][managers[_platform][i]] - 1;\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Gets asset managers for managing liquidity\\r\\n        @param  _platform   address of market making platform\\r\\n     */\\r\\n    function getManagers(address _platform) external view onlyOwner returns(address[] memory){\\r\\n        return managers[_platform];\\r\\n    }\\r\\n    \\r\\n    function saveInvestor(address investor) private {\\r\\n        bool found = false;\\r\\n        uint length = tokens.length;\\r\\n        for(uint256 i=0; i<length; i++){\\r\\n            if(investors[investor][tokens[i].tokenAddress].tokenAmount > 0)\\r\\n                found = true;\\r\\n        }\\r\\n        if(!found){\\r\\n            LPs.push(investor);\\r\\n        }\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Receiver of ether invested in the Verified Liquidity token\\r\\n     */\\r\\n    receive() external payable{\\r\\n        if(timeLimit!=0)\\r\\n            require(timeLimit > block.timestamp, \\"Subscription window breached\\");\\r\\n        //ether paid in\\r\\n        require(msg.value !=0, \\"Zero eth sent\\");\\r\\n        //contract must not be paused\\r\\n        require(paused() == false, \\"Contract in paused state\\");\\r\\n        //block reentrants\\r\\n        require(!lock[\\"etherreceipt\\"], \\"Locked to avoid reentrancy\\");\\r\\n        lock[\\"etherreceipt\\"] = true;\\r\\n        //issue liquidity token        \\r\\n        if(investors[msg.sender][address(0x0)].tokenAmount==0){\\r\\n            ILiquidity.provider memory lp = ILiquidity.provider({\\r\\n                assetInvested: string(\\"ether\\"),\\r\\n                investorAddress: msg.sender\\r\\n            });\\r\\n            providers.push(lp);\\r\\n        }\\r\\n        if(LPIndex[msg.sender]==0){\\r\\n            LPs.push(msg.sender);\\r\\n            LPIndex[msg.sender] = LPs.length;\\r\\n        }\\r\\n        investors[msg.sender][address(0x0)].tokenAmount = SafeMath.add(investors[msg.sender][address(0x0)].tokenAmount, msg.value);\\r\\n        emit RequestIssue(msg.sender, address(0x0), msg.value, block.timestamp);\\r\\n        if(exchangeRate[address(0x0)]!=0){\\r\\n            issueVitta(msg.sender, address(0x0), msg.value, FixedPoint.mulDown(msg.value, exchangeRate[address(0x0)]), owner());\\r\\n            emit RequestRate(address(0x0), exchangeRate[address(0x0)]);\\r\\n        }\\r\\n        lock[\\"etherreceipt\\"] = false;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \\r\\n        @param  _token  address of token used by investor to buy the VITTA\\r\\n        @param  _amount amount of token that is transferred from investor to this VITTA issuing contract\'s account for the investor\\r\\n     */\\r\\n    function buy(address _token, uint256 _amount) external {\\r\\n        if(timeLimit!=0)\\r\\n            require(timeLimit > block.timestamp, \\"Subscription window breached\\");\\r\\n        require(paused() == false, \\"Contract in paused state\\");\\r\\n        bool found = false;\\r\\n        if(tokenIndex[_token]>0)\\r\\n            found = true;\\r\\n        if(found){\\r\\n            require(!lock[\\"buy\\"], \\"Locked to prevent reentrancy\\");\\r\\n            lock[\\"buy\\"] = true;\\r\\n            if(IERC20(_token).transferFrom(msg.sender, address(this), _amount)){\\r\\n                emit RequestIssue(msg.sender, _token, _amount, block.timestamp);\\r\\n                if(LPIndex[msg.sender]==0){\\r\\n                    LPs.push(msg.sender);\\r\\n                    LPIndex[msg.sender] = LPs.length;\\r\\n                }\\r\\n                if(investors[msg.sender][_token].tokenAmount==0){\\r\\n                    ILiquidity.provider memory lp = ILiquidity.provider({\\r\\n                        assetInvested: ERC20(_token).name(),\\r\\n                        investorAddress: msg.sender\\r\\n                    });\\r\\n                    providers.push(lp);\\r\\n                }\\r\\n                investors[msg.sender][_token].tokenAmount = SafeMath.add(investors[msg.sender][_token].tokenAmount, _amount);\\r\\n                investors[msg.sender][_token].tokenAddress = _token;                \\r\\n                if(exchangeRate[_token]!=0){\\r\\n                    issueVitta(msg.sender, _token, _amount, FixedPoint.mulDown(_upscale(_amount, _computeScalingFactor(IERC20(_token))), exchangeRate[_token]), owner());\\r\\n                    emit RequestRate(_token, exchangeRate[_token]);\\r\\n                }\\r\\n            }\\r\\n            lock[\\"buy\\"] = false;\\r\\n        }\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Fetches investors in VITTA\\r\\n     */\\r\\n    function getInvestors() external view onlyOwner returns(ILiquidity.provider[] memory){\\r\\n        return providers;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Fetches investment detail for specific investor in VITTA\\r\\n        @param  _investor   address of investor\\r\\n        @param  _token      address of token invested by investor\\r\\n     */\\r\\n    function getInvestment(address _investor, address _token) external view onlyOwner returns(uint256){\\r\\n        return (investors[_investor][_token].tokenAmount);\\r\\n    }\\r\\n    \\r\\n    /**\\r\\n        Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\\r\\n        @param  _investor       address of investor\\r\\n        @param  _token          address of token invested in VITTA\\r\\n        @param  _tokenAmount    amount of token invested in VITTA\\r\\n        @param  _LPToIssue      amount of VITTA to issue to investor \\r\\n     */\\r\\n    function issue(address _investor, address _token, uint256 _tokenAmount, uint256 _LPToIssue) external onlyOwner {\\r\\n        issueVitta(_investor, _token, _tokenAmount, _LPToIssue, msg.sender);\\r\\n    }\\r\\n    \\r\\n    function issueVitta(address _investor, address _token, uint256 _tokenAmount, uint256 _LPToIssue, address _issuer) private {\\r\\n        require(!lock[\\"issue\\"], \\"Locked to prevent renentrancy\\");\\r\\n        lock[\\"issue\\"] = true;\\r\\n        investors[_investor][_token].tokenAmount = SafeMath.sub(investors[_investor][_token].tokenAmount, _tokenAmount);\\r\\n        //If investment is outside limits, refund tokens invested back to investor\\r\\n        if((_LPToIssue > investmentCap) || (_LPToIssue > SafeMath.sub(IERC20(vitta).totalSupply(), totalIssued))){\\r\\n            if(investors[_investor][_token].tokenAddress!=address(0x0))\\r\\n                IERC20(investors[_investor][_token].tokenAddress).transfer(_investor, _tokenAmount);\\r\\n            else\\r\\n                payable(_investor).transfer(_tokenAmount);\\r\\n        }\\r\\n        //else issue VITTA to investor and transfer managed liquidity to deployer that allocates it to issuer\\r\\n        else{\\r\\n            IERC20(vitta).transferFrom(_issuer, _investor, _LPToIssue);  \\r\\n            totalIssued = SafeMath.add(totalIssued, _LPToIssue);    \\r\\n            stakes[_investor] = SafeMath.add(stakes[_investor], _LPToIssue);\\r\\n            emit IssuedVitta(_investor, investors[_investor][_token].tokenAddress, _tokenAmount, _LPToIssue);\\r\\n            if(investors[_investor][_token].tokenAddress!=address(0x0))                                                        \\r\\n                IERC20(investors[_investor][_token].tokenAddress).transfer(treasury, _downscaleDown(FixedPoint.mulDown(_upscale(_tokenAmount, _computeScalingFactor(IERC20(_token))), liquidityShare), _computeScalingFactor(IERC20(_token))));\\r\\n            else\\r\\n                payable(treasury).transfer(FixedPoint.mulDown(_tokenAmount, liquidityShare));\\r\\n        }        \\r\\n        lock[\\"issue\\"] = false;\\r\\n    }\\r\\n    \\r\\n    /**\\r\\n        Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \\r\\n        @param  _platform   address of platform on which liquidity has to be provided\\r\\n        @param  _manager    address of asset manager to whom liquidity has to be provided\\r\\n        @param  _liquidity  amount of VITTA tokens to allot to an asset manager\\r\\n        @param  _token      address of token allotted to asset manager\\r\\n        @param  _tokenAmount    amount of token allotted to asset manager\\r\\n     */    \\r\\n    function provideLiquidity(address _platform, address _manager, uint256 _liquidity, address _token, uint256 _tokenAmount) external onlyOwner {\\r\\n        require(!lock[\\"liquidity\\"], \\"Locked to prevent reentrancy\\");\\r\\n        lock[\\"liquidity\\"] = true;\\r\\n        require(paused() == false, \\"Contract in paused state\\");\\r\\n        require(managerIndex[_platform][_manager]!=0, \\"Manager does not exist\\");\\r\\n        //provide liquidity in native tokens invested by LPs\\r\\n        if(_token!=address(0x0)) //not ether\\r\\n            IERC20(_token).transfer(_platform, _tokenAmount);\\r\\n        else //if ether\\r\\n            require(payable(_platform).send(_tokenAmount), \\"Transfer failed\\");    \\r\\n        IMarketMaker(_platform).stake(_tokenAmount, _token, _manager);\\r\\n        emit PlatformLiquidity(_platform, _manager, _liquidity, _token, _tokenAmount);\\r\\n        platformRoi[_platform].liquidityProvided = SafeMath.add(platformRoi[_platform].liquidityProvided, _liquidity);\\r\\n        uint256 index = managerIndex[_platform][_manager];\\r\\n        managerRoi[_platform][_token][index].liquidityProvided = SafeMath.add(managerRoi[_platform][_token][index].liquidityProvided, _tokenAmount);\\r\\n        lock[\\"liquidity\\"] = false;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Pay out of income by Market maker contracts to VITTA Liquidity providers\\r\\n        @param  _distribution   amount of VITTA to mint and distribute pro rata to liquidity providers\\r\\n        @param  _token          address of token in which distribution is made by market maker    \\r\\n        @param  _manager        address of asset manager earning the paid out return on investment \\r\\n     */\\r\\n    function distribute(uint256 _distribution, address _token, address _manager) external {\\r\\n        require(platformIndex[msg.sender]>0, \\"Liquidity pool does not exist\\");\\r\\n        require(tokenIndex[_token]>0, \\"Unsupported token\\");\\r\\n        require(paused() == false, \\"Contract in paused state\\");\\r\\n        require(!lock[\\"distribute\\"], \\"Locked to prevent reentrancy\\");\\r\\n        lock[\\"distribute\\"] = true;\\r\\n        uint256 index = managerIndex[msg.sender][_manager];\\r\\n        if(totalIssued!=0 && index!=0){            \\r\\n            managerRoi[msg.sender][_token][index].commissionsEarned = SafeMath.add(managerRoi[msg.sender][_token][index].commissionsEarned, _distribution);\\r\\n            emit ManagerReturns(msg.sender, _manager, _token, _distribution);\\r\\n        }\\r\\n        lock[\\"distribute\\"] = false;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Fetches performance of market platform platform\\r\\n        @param  _platform   address of market making platform\\r\\n     */\\r\\n    function getPlatformPerformance(address _platform) external view onlyOwner returns(uint256 platformLiquidityProvided,\\r\\n                                                                                        uint256 platformCommissionsEarned){                                                                                        \\r\\n        return (platformRoi[_platform].liquidityProvided, platformRoi[_platform].commissionsEarned);\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Fetches performance of asset managers\\r\\n        @param  _platform   address of platform\\r\\n        @param  _token      address of token\\r\\n        @param  _manager    address of asset manager on platform\\r\\n     */\\r\\n    function getManagerPerformance(address _platform, address _token, address _manager) external view onlyOwner returns(uint256 managerLiquidityProvided,\\r\\n                                                                                    uint256 managerCommissionsEarned){\\r\\n        uint256 index = managerIndex[_platform][_manager];                                                                                \\r\\n        return (managerRoi[_platform][_token][index].liquidityProvided, managerRoi[_platform][_token][index].commissionsEarned);\\r\\n    }\\r\\n    \\r\\n    /**\\r\\n        Pay out income to VITTA Liquidity providers\\r\\n        @param  _distribution   amount of VITTA to mint and distribute pro rata to liquidity providers   \\r\\n        @param  _platform       address of platform on which commission is earned based on which distribution is made\\r\\n     */\\r\\n    function payOut(uint256 _distribution, address _platform) onlyOwner external {\\r\\n        require(!lock[\\"payout\\"], \\"Locked to prevent renentrancy\\");\\r\\n        lock[\\"payout\\"] = true;\\r\\n        IVitta(vitta).mint(address(this), _distribution);\\r\\n        platformRoi[_platform].commissionsEarned = SafeMath.add(platformRoi[_platform].commissionsEarned, _distribution);\\r\\n        emit PlatformReturns(_platform, vitta, _distribution);\\r\\n        uint length = LPs.length;\\r\\n        uint issued = totalIssued;\\r\\n        for(uint i=0; i<length; i++){\\r\\n            uint256 prorataStake = FixedPoint.mulDown(FixedPoint.divDown(stakes[LPs[i]], issued), _distribution);\\r\\n            IERC20(vitta).transfer(LPs[i], prorataStake);   \\r\\n            emit InvestorReturns(_platform, LPs[i], vitta, prorataStake, block.timestamp);\\r\\n            totalIssued = SafeMath.add(totalIssued, prorataStake);    \\r\\n            stakes[LPs[i]] = SafeMath.add(stakes[LPs[i]], prorataStake);             \\r\\n        }\\r\\n        lock[\\"payout\\"] = false;\\r\\n    }\\r\\n\\r\\n    function balance(address investor) external view returns(uint256 investorBalance){\\r\\n        return IERC20(vitta).balanceOf(investor);\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Adjust stakes for every transfer of Vitta\\r\\n        @param  sender      transferor of Vitta\\r\\n        @param  recipient   transferee of vitta\\r\\n        @param  amount      amount of vitta transferred\\r\\n     */\\r\\n    function transfer(address sender, address recipient, uint256 amount) external {\\r\\n        require(msg.sender==vitta, \\"Unauthorized sender\\");\\r\\n        require(stakes[sender]>=amount, \\"Insufficient balance\\");\\r\\n        saveInvestor(recipient);\\r\\n        stakes[recipient] = SafeMath.add(stakes[recipient], amount);\\r\\n        stakes[sender] = SafeMath.sub(stakes[sender], amount);\\r\\n    }\\r\\n\\r\\n    /**\\r\\n        Pauses this contract\\r\\n     */\\r\\n    function pause() public onlyOwner {\\r\\n        _pause();\\r\\n    }\\r\\n    \\r\\n    /**\\r\\n        Unpauses this contract\\r\\n     */\\r\\n    function unpause() public onlyOwner {\\r\\n        _unpause();\\r\\n    }\\r\\n\\r\\n    function setOracle(address _oracle) public onlyOwner {\\r\\n        oracle = _oracle;\\r\\n    }\\r\\n    \\r\\n    function setExchangeRate(address token, uint256 rate) public onlyOracle(msg.sender) {\\r\\n        if(tokenIndex[token]>0){\\r\\n            exchangeRate[token] = rate;\\r\\n        }\\r\\n    }\\r\\n\\r\\n    function setTreasurer(address _treasurer) public onlyTreasurer(msg.sender){\\r\\n        treasury = _treasurer;\\r\\n    }\\r\\n\\r\\n    function setLiquidityShare(uint256 _share) public onlyTreasurer(msg.sender){\\r\\n        liquidityShare = _share;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n     * @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\\r\\n     * it had 18 decimals.\\r\\n     */\\r\\n    function _computeScalingFactor(IERC20 token) internal view returns (uint256) {\\r\\n        // Tokens that don\'t implement the `decimals` method are not supported.\\r\\n        uint256 tokenDecimals = ERC20(address(token)).decimals();\\r\\n        \\r\\n        // Tokens with more than 18 decimals are not supported.\\r\\n        uint256 decimalsDifference = Math.sub(18, tokenDecimals);\\r\\n        return FixedPoint.ONE * 10**decimalsDifference;\\r\\n    }\\r\\n\\r\\n    /**\\r\\n     * @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\\r\\n     * whether it needed scaling or not. The result is rounded down.\\r\\n     */\\r\\n    function _downscaleDown(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\\r\\n        return FixedPoint.divDown(amount, scalingFactor);\\r\\n    }\\r\\n\\r\\n    /**\\r\\n     * @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\\r\\n     * scaling or not.\\r\\n     */\\r\\n    function _upscale(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\\r\\n        return FixedPoint.mulDown(amount, scalingFactor);\\r\\n    }\\r\\n    \\r\\n}\\r\\n\\r\\n","sourcePath":"D:\\\\Code\\\\verified-liquidity\\\\verified\\\\contracts\\\\Liquidity.sol","ast":{"absolutePath":"project:/contracts/Liquidity.sol","exportedSymbols":{"Context":[866],"ERC20":[741],"Errors":[4564],"FixedPoint":[4986],"IERC20":[819],"IERC20Metadata":[844],"ILiquidity":[3772],"IMarketMaker":[3998],"IVitta":[4008],"Liquidity":[3398],"LogExpMath":[6284],"Math":[6596],"Ownable":[103],"Pausable":[195],"SafeMath":[1178],"_require":[4026,4045],"_revert":[4057,4077]},"id":3399,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1180,"literals":["solidity","0.8",".0"],"nodeType":"PragmaDirective","src":"104:22:7"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":1181,"nodeType":"ImportDirective","scope":3399,"sourceUnit":104,"src":"130:52:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":1182,"nodeType":"ImportDirective","scope":3399,"sourceUnit":196,"src":"184:55:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":1183,"nodeType":"ImportDirective","scope":3399,"sourceUnit":820,"src":"243:56:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":1184,"nodeType":"ImportDirective","scope":3399,"sourceUnit":742,"src":"301:55:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":1185,"nodeType":"ImportDirective","scope":3399,"sourceUnit":1179,"src":"360:57:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/interfaces/IMarketMaker.sol","file":"./interfaces/IMarketMaker.sol","id":1186,"nodeType":"ImportDirective","scope":3399,"sourceUnit":3999,"src":"421:39:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/interfaces/ILiquidity.sol","file":"./interfaces/ILiquidity.sol","id":1187,"nodeType":"ImportDirective","scope":3399,"sourceUnit":3773,"src":"462:37:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/interfaces/IVitta.sol","file":"./interfaces/IVitta.sol","id":1188,"nodeType":"ImportDirective","scope":3399,"sourceUnit":4009,"src":"501:33:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/math/FixedPoint.sol","file":"./math/FixedPoint.sol","id":1189,"nodeType":"ImportDirective","scope":3399,"sourceUnit":4987,"src":"538:31:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/math/Math.sol","file":"./math/Math.sol","id":1190,"nodeType":"ImportDirective","scope":3399,"sourceUnit":6597,"src":"571:25:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1191,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":103,"src":"622:7:7"},"id":1192,"nodeType":"InheritanceSpecifier","src":"622:7:7"},{"baseName":{"id":1193,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":195,"src":"631:8:7"},"id":1194,"nodeType":"InheritanceSpecifier","src":"631:8:7"}],"contractDependencies":[103,195,866],"contractKind":"contract","fullyImplemented":true,"id":3398,"linearizedBaseContracts":[3398,195,103,866],"name":"Liquidity","nodeType":"ContractDefinition","nodes":[{"id":1197,"libraryName":{"id":1195,"name":"SafeMath","nodeType":"IdentifierPath","referencedDeclaration":1178,"src":"655:8:7"},"nodeType":"UsingForDirective","src":"649:27:7","typeName":{"id":1196,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":1200,"libraryName":{"id":1198,"name":"FixedPoint","nodeType":"IdentifierPath","referencedDeclaration":4986,"src":"688:10:7"},"nodeType":"UsingForDirective","src":"682:29:7","typeName":{"id":1199,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":1204,"mutability":"mutable","name":"platforms","nodeType":"VariableDeclaration","scope":3398,"src":"719:39:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform[]"},"typeName":{"baseType":{"id":1202,"nodeType":"UserDefinedTypeName","pathNode":{"id":1201,"name":"ILiquidity.platform","nodeType":"IdentifierPath","referencedDeclaration":3582,"src":"719:19:7"},"referencedDeclaration":3582,"src":"719:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_storage_ptr","typeString":"struct ILiquidity.platform"}},"id":1203,"nodeType":"ArrayTypeName","src":"719:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.platform[]"}},"visibility":"private"},{"constant":false,"id":1208,"mutability":"mutable","name":"platformIndex","nodeType":"VariableDeclaration","scope":3398,"src":"765:49:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1207,"keyType":{"id":1205,"name":"address","nodeType":"ElementaryTypeName","src":"773:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"765:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1206,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1212,"mutability":"mutable","name":"tokens","nodeType":"VariableDeclaration","scope":3398,"src":"823:33:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token[]"},"typeName":{"baseType":{"id":1210,"nodeType":"UserDefinedTypeName","pathNode":{"id":1209,"name":"ILiquidity.token","nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"823:16:7"},"referencedDeclaration":3587,"src":"823:16:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage_ptr","typeString":"struct ILiquidity.token"}},"id":1211,"nodeType":"ArrayTypeName","src":"823:18:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.token[]"}},"visibility":"private"},{"constant":false,"id":1216,"mutability":"mutable","name":"tokenIndex","nodeType":"VariableDeclaration","scope":3398,"src":"863:46:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1215,"keyType":{"id":1213,"name":"address","nodeType":"ElementaryTypeName","src":"871:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"863:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1214,"name":"uint256","nodeType":"ElementaryTypeName","src":"882:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1220,"mutability":"mutable","name":"providers","nodeType":"VariableDeclaration","scope":3398,"src":"922:39:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider[]"},"typeName":{"baseType":{"id":1218,"nodeType":"UserDefinedTypeName","pathNode":{"id":1217,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"922:19:7"},"referencedDeclaration":3592,"src":"922:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"id":1219,"nodeType":"ArrayTypeName","src":"922:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.provider[]"}},"visibility":"private"},{"constant":false,"id":1223,"mutability":"mutable","name":"LPs","nodeType":"VariableDeclaration","scope":3398,"src":"968:21:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":1221,"name":"address","nodeType":"ElementaryTypeName","src":"968:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1222,"nodeType":"ArrayTypeName","src":"968:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"constant":false,"id":1226,"mutability":"mutable","name":"investmentCap","nodeType":"VariableDeclaration","scope":3398,"src":"998:31:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1224,"name":"uint256","nodeType":"ElementaryTypeName","src":"998:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":1225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":1229,"mutability":"mutable","name":"timeLimit","nodeType":"VariableDeclaration","scope":3398,"src":"1036:27:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1227,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":1228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":1232,"mutability":"mutable","name":"totalIssued","nodeType":"VariableDeclaration","scope":3398,"src":"1074:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1230,"name":"uint256","nodeType":"ElementaryTypeName","src":"1074:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":1231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1102:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":1234,"mutability":"mutable","name":"vitta","nodeType":"VariableDeclaration","scope":3398,"src":"1112:21:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1233,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":1236,"mutability":"mutable","name":"treasury","nodeType":"VariableDeclaration","scope":3398,"src":"1193:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1235,"name":"address","nodeType":"ElementaryTypeName","src":"1193:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":1238,"mutability":"mutable","name":"liquidityShare","nodeType":"VariableDeclaration","scope":3398,"src":"1224:30:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1237,"name":"uint256","nodeType":"ElementaryTypeName","src":"1224:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"canonicalName":"Liquidity.investment","id":1243,"members":[{"constant":false,"id":1240,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1243,"src":"1291:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1242,"mutability":"mutable","name":"tokenAddress","nodeType":"VariableDeclaration","scope":1243,"src":"1321:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1241,"name":"address","nodeType":"ElementaryTypeName","src":"1321:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"investment","nodeType":"StructDefinition","scope":3398,"src":"1263:86:7","visibility":"public"},{"canonicalName":"Liquidity.performance","id":1248,"members":[{"constant":false,"id":1245,"mutability":"mutable","name":"liquidityProvided","nodeType":"VariableDeclaration","scope":1248,"src":"1390:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1390:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1247,"mutability":"mutable","name":"commissionsEarned","nodeType":"VariableDeclaration","scope":1248,"src":"1426:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1246,"name":"uint256","nodeType":"ElementaryTypeName","src":"1426:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"performance","nodeType":"StructDefinition","scope":3398,"src":"1361:98:7","visibility":"public"},{"constant":false,"id":1255,"mutability":"mutable","name":"investors","nodeType":"VariableDeclaration","scope":3398,"src":"1511:68:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment))"},"typeName":{"id":1254,"keyType":{"id":1249,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:50:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment))"},"valueType":{"id":1253,"keyType":{"id":1250,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:30:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment)"},"valueType":{"id":1252,"nodeType":"UserDefinedTypeName","pathNode":{"id":1251,"name":"investment","nodeType":"IdentifierPath","referencedDeclaration":1243,"src":"1549:10:7"},"referencedDeclaration":1243,"src":"1549:10:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage_ptr","typeString":"struct Liquidity.investment"}}}},"visibility":"private"},{"constant":false,"id":1259,"mutability":"mutable","name":"stakes","nodeType":"VariableDeclaration","scope":3398,"src":"1649:42:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1258,"keyType":{"id":1256,"name":"address","nodeType":"ElementaryTypeName","src":"1657:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1649:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1257,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1264,"mutability":"mutable","name":"managers","nodeType":"VariableDeclaration","scope":3398,"src":"1751:46:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":1263,"keyType":{"id":1260,"name":"address","nodeType":"ElementaryTypeName","src":"1759:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1751:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueType":{"baseType":{"id":1261,"name":"address","nodeType":"ElementaryTypeName","src":"1770:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1262,"nodeType":"ArrayTypeName","src":"1770:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"private"},{"constant":false,"id":1270,"mutability":"mutable","name":"managerIndex","nodeType":"VariableDeclaration","scope":3398,"src":"1864:68:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":1269,"keyType":{"id":1265,"name":"address","nodeType":"ElementaryTypeName","src":"1872:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1864:47:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":1268,"keyType":{"id":1266,"name":"address","nodeType":"ElementaryTypeName","src":"1891:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1883:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":1279,"mutability":"mutable","name":"managerRoi","nodeType":"VariableDeclaration","scope":3398,"src":"2067:90:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance)))"},"typeName":{"id":1278,"keyType":{"id":1271,"name":"address","nodeType":"ElementaryTypeName","src":"2075:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2067:71:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance)))"},"valueType":{"id":1277,"keyType":{"id":1272,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2086:51:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance))"},"valueType":{"id":1276,"keyType":{"id":1273,"name":"uint256","nodeType":"ElementaryTypeName","src":"2113:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2105:31:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance)"},"valueType":{"id":1275,"nodeType":"UserDefinedTypeName","pathNode":{"id":1274,"name":"performance","nodeType":"IdentifierPath","referencedDeclaration":1248,"src":"2124:11:7"},"referencedDeclaration":1248,"src":"2124:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage_ptr","typeString":"struct Liquidity.performance"}}}}},"visibility":"private"},{"constant":false,"id":1284,"mutability":"mutable","name":"platformRoi","nodeType":"VariableDeclaration","scope":3398,"src":"2204:51:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance)"},"typeName":{"id":1283,"keyType":{"id":1280,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2204:31:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance)"},"valueType":{"id":1282,"nodeType":"UserDefinedTypeName","pathNode":{"id":1281,"name":"performance","nodeType":"IdentifierPath","referencedDeclaration":1248,"src":"2223:11:7"},"referencedDeclaration":1248,"src":"2223:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage_ptr","typeString":"struct Liquidity.performance"}}},"visibility":"private"},{"constant":false,"id":1288,"mutability":"mutable","name":"exchangeRate","nodeType":"VariableDeclaration","scope":3398,"src":"2310:48:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1287,"keyType":{"id":1285,"name":"address","nodeType":"ElementaryTypeName","src":"2318:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2310:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1286,"name":"uint256","nodeType":"ElementaryTypeName","src":"2329:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1292,"mutability":"mutable","name":"LPIndex","nodeType":"VariableDeclaration","scope":3398,"src":"2402:43:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1291,"keyType":{"id":1289,"name":"address","nodeType":"ElementaryTypeName","src":"2410:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2402:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1290,"name":"uint256","nodeType":"ElementaryTypeName","src":"2421:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1294,"mutability":"mutable","name":"oracle","nodeType":"VariableDeclaration","scope":3398,"src":"2469:22:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1293,"name":"address","nodeType":"ElementaryTypeName","src":"2469:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":1306,"nodeType":"Block","src":"2535:77:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1299,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"2554:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1300,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"2562:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2554:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a6564206f7261636c65","id":1302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2570:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bcd345f4c7b73f5cd4feebd39cb3befed09360f28038e7e668a1b391b719f4a","typeString":"literal_string \\"Unauthorized oracle\\""},"value":"Unauthorized oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bcd345f4c7b73f5cd4feebd39cb3befed09360f28038e7e668a1b391b719f4a","typeString":"literal_string \\"Unauthorized oracle\\""}],"id":1298,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2546:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2546:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1304,"nodeType":"ExpressionStatement","src":"2546:46:7"},{"id":1305,"nodeType":"PlaceholderStatement","src":"2603:1:7"}]},"id":1307,"name":"onlyOracle","nodeType":"ModifierDefinition","parameters":{"id":1297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1296,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":1307,"src":"2520:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1295,"name":"address","nodeType":"ElementaryTypeName","src":"2520:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2519:16:7"},"src":"2500:112:7","virtual":false,"visibility":"internal"},{"body":{"id":1319,"nodeType":"Block","src":"2658:82:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1312,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"2677:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1313,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2687:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2677:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a656420747265617375726572","id":1315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2695:24:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e27cf84062ca3c0af9382af6cdd258fd123bdb3418633ba1a4dde9e29d5d3b7","typeString":"literal_string \\"Unauthorized treasurer\\""},"value":"Unauthorized treasurer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9e27cf84062ca3c0af9382af6cdd258fd123bdb3418633ba1a4dde9e29d5d3b7","typeString":"literal_string \\"Unauthorized treasurer\\""}],"id":1311,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2669:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2669:51:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1317,"nodeType":"ExpressionStatement","src":"2669:51:7"},{"id":1318,"nodeType":"PlaceholderStatement","src":"2731:1:7"}]},"id":1320,"name":"onlyTreasurer","nodeType":"ModifierDefinition","parameters":{"id":1310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1309,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":1320,"src":"2643:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1308,"name":"address","nodeType":"ElementaryTypeName","src":"2643:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2642:16:7"},"src":"2620:120:7","virtual":false,"visibility":"internal"},{"constant":false,"id":1324,"mutability":"mutable","name":"lock","nodeType":"VariableDeclaration","scope":3398,"src":"2761:37:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":1323,"keyType":{"id":1321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2769:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2761:24:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":1322,"name":"bool","nodeType":"ElementaryTypeName","src":"2780:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"anonymous":false,"id":1330,"name":"SupportToken","nodeType":"EventDefinition","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1326,"indexed":true,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1330,"src":"2826:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1325,"name":"address","nodeType":"ElementaryTypeName","src":"2826:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1328,"indexed":false,"mutability":"mutable","name":"tokenName","nodeType":"VariableDeclaration","scope":1330,"src":"2849:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1327,"name":"string","nodeType":"ElementaryTypeName","src":"2849:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2825:41:7"},"src":"2807:60:7"},{"anonymous":false,"id":1336,"name":"RegisterPlatform","nodeType":"EventDefinition","parameters":{"id":1335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1332,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1336,"src":"2896:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1331,"name":"address","nodeType":"ElementaryTypeName","src":"2896:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1334,"indexed":false,"mutability":"mutable","name":"platformName","nodeType":"VariableDeclaration","scope":1336,"src":"2922:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2922:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2895:48:7"},"src":"2873:71:7"},{"anonymous":false,"id":1342,"name":"PlatformManagers","nodeType":"EventDefinition","parameters":{"id":1341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1342,"src":"2973:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1337,"name":"address","nodeType":"ElementaryTypeName","src":"2973:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1340,"indexed":false,"mutability":"mutable","name":"manager","nodeType":"VariableDeclaration","scope":1342,"src":"2999:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1339,"name":"address","nodeType":"ElementaryTypeName","src":"2999:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2972:43:7"},"src":"2950:66:7"},{"anonymous":false,"id":1348,"name":"RequestRate","nodeType":"EventDefinition","parameters":{"id":1347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1344,"indexed":true,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1348,"src":"3040:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1343,"name":"address","nodeType":"ElementaryTypeName","src":"3040:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1346,"indexed":false,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":1348,"src":"3063:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1345,"name":"uint256","nodeType":"ElementaryTypeName","src":"3063:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3039:39:7"},"src":"3022:57:7"},{"anonymous":false,"id":1358,"name":"RequestIssue","nodeType":"EventDefinition","parameters":{"id":1357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1350,"indexed":true,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":1358,"src":"3104:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1349,"name":"address","nodeType":"ElementaryTypeName","src":"3104:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1352,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1358,"src":"3130:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1351,"name":"address","nodeType":"ElementaryTypeName","src":"3130:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1354,"indexed":false,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1358,"src":"3145:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1353,"name":"uint256","nodeType":"ElementaryTypeName","src":"3145:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1356,"indexed":false,"mutability":"mutable","name":"timestamp","nodeType":"VariableDeclaration","scope":1358,"src":"3166:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1355,"name":"uint256","nodeType":"ElementaryTypeName","src":"3166:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:81:7"},"src":"3085:100:7"},{"anonymous":false,"id":1368,"name":"IssuedVitta","nodeType":"EventDefinition","parameters":{"id":1367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1360,"indexed":true,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":1368,"src":"3209:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1359,"name":"address","nodeType":"ElementaryTypeName","src":"3209:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1362,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1368,"src":"3235:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1361,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1364,"indexed":false,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1368,"src":"3250:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1363,"name":"uint256","nodeType":"ElementaryTypeName","src":"3250:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1366,"indexed":false,"mutability":"mutable","name":"LPToIssue","nodeType":"VariableDeclaration","scope":1368,"src":"3271:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1365,"name":"uint256","nodeType":"ElementaryTypeName","src":"3271:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3208:81:7"},"src":"3191:99:7"},{"anonymous":false,"id":1380,"name":"PlatformLiquidity","nodeType":"EventDefinition","parameters":{"id":1379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1370,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1380,"src":"3320:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1369,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1372,"indexed":false,"mutability":"mutable","name":"manager","nodeType":"VariableDeclaration","scope":1380,"src":"3346:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1371,"name":"address","nodeType":"ElementaryTypeName","src":"3346:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1374,"indexed":false,"mutability":"mutable","name":"LPToken","nodeType":"VariableDeclaration","scope":1380,"src":"3363:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1373,"name":"uint256","nodeType":"ElementaryTypeName","src":"3363:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1376,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1380,"src":"3380:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1375,"name":"address","nodeType":"ElementaryTypeName","src":"3380:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1378,"indexed":false,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1380,"src":"3395:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1377,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3319:96:7"},"src":"3296:120:7"},{"anonymous":false,"id":1390,"name":"ManagerReturns","nodeType":"EventDefinition","parameters":{"id":1389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1390,"src":"3443:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1381,"name":"address","nodeType":"ElementaryTypeName","src":"3443:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1384,"indexed":true,"mutability":"mutable","name":"manager","nodeType":"VariableDeclaration","scope":1390,"src":"3469:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1383,"name":"address","nodeType":"ElementaryTypeName","src":"3469:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1386,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1390,"src":"3494:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1385,"name":"address","nodeType":"ElementaryTypeName","src":"3494:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1388,"indexed":false,"mutability":"mutable","name":"distribution","nodeType":"VariableDeclaration","scope":1390,"src":"3509:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1387,"name":"uint256","nodeType":"ElementaryTypeName","src":"3509:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3442:88:7"},"src":"3422:109:7"},{"anonymous":false,"id":1398,"name":"PlatformReturns","nodeType":"EventDefinition","parameters":{"id":1397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1392,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1398,"src":"3559:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1391,"name":"address","nodeType":"ElementaryTypeName","src":"3559:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1394,"indexed":false,"mutability":"mutable","name":"vitta","nodeType":"VariableDeclaration","scope":1398,"src":"3585:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1393,"name":"address","nodeType":"ElementaryTypeName","src":"3585:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1396,"indexed":false,"mutability":"mutable","name":"distribution","nodeType":"VariableDeclaration","scope":1398,"src":"3600:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1395,"name":"uint256","nodeType":"ElementaryTypeName","src":"3600:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3558:63:7"},"src":"3537:85:7"},{"anonymous":false,"id":1410,"name":"InvestorReturns","nodeType":"EventDefinition","parameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1400,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1410,"src":"3650:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1399,"name":"address","nodeType":"ElementaryTypeName","src":"3650:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1402,"indexed":true,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":1410,"src":"3676:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1401,"name":"address","nodeType":"ElementaryTypeName","src":"3676:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1404,"indexed":false,"mutability":"mutable","name":"vitta","nodeType":"VariableDeclaration","scope":1410,"src":"3702:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1403,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1406,"indexed":false,"mutability":"mutable","name":"prorataStake","nodeType":"VariableDeclaration","scope":1410,"src":"3717:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1405,"name":"uint256","nodeType":"ElementaryTypeName","src":"3717:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1408,"indexed":false,"mutability":"mutable","name":"timestamp","nodeType":"VariableDeclaration","scope":1410,"src":"3739:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1407,"name":"uint256","nodeType":"ElementaryTypeName","src":"3739:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3649:108:7"},"src":"3628:130:7"},{"body":{"id":1447,"nodeType":"Block","src":"4092:198:7","statements":[{"expression":{"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1422,"name":"investmentCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"4111:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1423,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"4127:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4111:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1425,"nodeType":"ExpressionStatement","src":"4111:20:7"},{"expression":{"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1426,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"4142:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1427,"name":"_limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"4154:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4142:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1429,"nodeType":"ExpressionStatement","src":"4142:18:7"},{"expression":{"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1430,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"4171:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4185:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4171:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1433,"nodeType":"ExpressionStatement","src":"4171:15:7"},{"expression":{"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1434,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"4197:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1435,"name":"_share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"4214:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4197:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1437,"nodeType":"ExpressionStatement","src":"4197:23:7"},{"expression":{"id":1440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1438,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"4231:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1439,"name":"_vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"4239:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4231:14:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1441,"nodeType":"ExpressionStatement","src":"4231:14:7"},{"expression":{"id":1445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1442,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"4257:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":1443,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"4268:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4268:7:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4257:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1446,"nodeType":"ExpressionStatement","src":"4257:18:7"}]},"documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"3772:241:7","text":"Constructor for the Verified Liquidity manager\\n@param  _cap    investment limit for each investor\\n@param  _limit  time limit for issue close\\n@param  _vitta  address of Verified liquidity token"},"id":1448,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":1420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1413,"mutability":"mutable","name":"_cap","nodeType":"VariableDeclaration","scope":1448,"src":"4031:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1412,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1415,"mutability":"mutable","name":"_limit","nodeType":"VariableDeclaration","scope":1448,"src":"4045:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1414,"name":"uint256","nodeType":"ElementaryTypeName","src":"4045:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1417,"mutability":"mutable","name":"_share","nodeType":"VariableDeclaration","scope":1448,"src":"4061:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"4061:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1419,"mutability":"mutable","name":"_vitta","nodeType":"VariableDeclaration","scope":1448,"src":"4077:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1418,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4030:62:7"},"returnParameters":{"id":1421,"nodeType":"ParameterList","parameters":[],"src":"4092:0:7"},"scope":3398,"src":"4019:271:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":1466,"nodeType":"Block","src":"4629:68:7","statements":[{"expression":{"id":1460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1458,"name":"investmentCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"4640:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1459,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"4656:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4640:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1461,"nodeType":"ExpressionStatement","src":"4640:20:7"},{"expression":{"id":1464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1462,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"4671:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1463,"name":"_limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1453,"src":"4683:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4671:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1465,"nodeType":"ExpressionStatement","src":"4671:18:7"}]},"documentation":{"id":1449,"nodeType":"StructuredDocumentation","src":"4298:254:7","text":"Updates investment and time limits for Verified Liquidity token after initial issue with constructor defined parameters\\n@param  _cap    investment limit for each investor\\n@param  _limit  time limit for issue close "},"functionSelector":"e4afbc6b","id":1467,"implemented":true,"kind":"function","modifiers":[{"id":1456,"modifierName":{"id":1455,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"4619:9:7"},"nodeType":"ModifierInvocation","src":"4619:9:7"}],"name":"createSupply","nodeType":"FunctionDefinition","parameters":{"id":1454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1451,"mutability":"mutable","name":"_cap","nodeType":"VariableDeclaration","scope":1467,"src":"4580:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1450,"name":"uint256","nodeType":"ElementaryTypeName","src":"4580:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1453,"mutability":"mutable","name":"_limit","nodeType":"VariableDeclaration","scope":1467,"src":"4594:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1452,"name":"uint256","nodeType":"ElementaryTypeName","src":"4594:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4579:30:7"},"returnParameters":{"id":1457,"nodeType":"ParameterList","parameters":[],"src":"4629:0:7"},"scope":3398,"src":"4558:139:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1513,"nodeType":"Block","src":"5000:330:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1477,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"5014:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1479,"indexExpression":{"id":1478,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5025:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5014:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5034:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5014:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1512,"nodeType":"IfStatement","src":"5011:312:7","trueBody":{"id":1511,"nodeType":"Block","src":"5036:287:7","statements":[{"assignments":[1486],"declarations":[{"constant":false,"id":1486,"mutability":"mutable","name":"t","nodeType":"VariableDeclaration","scope":1511,"src":"5051:25:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token"},"typeName":{"id":1485,"nodeType":"UserDefinedTypeName","pathNode":{"id":1484,"name":"ILiquidity.token","nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"5051:16:7"},"referencedDeclaration":3587,"src":"5051:16:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage_ptr","typeString":"struct ILiquidity.token"}},"visibility":"internal"}],"id":1492,"initialValue":{"arguments":[{"id":1489,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"5126:5:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1490,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5164:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1487,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"5079:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":1488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":3587,"src":"5079:16:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_token_$3587_storage_ptr_$","typeString":"type(struct ILiquidity.token storage pointer)"}},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["tokenName","tokenAddress"],"nodeType":"FunctionCall","src":"5079:107:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token memory"}},"nodeType":"VariableDeclarationStatement","src":"5051:135:7"},{"expression":{"arguments":[{"id":1496,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1486,"src":"5213:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token memory"}],"expression":{"id":1493,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"5201:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5201:11:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_token_$3587_storage_$returns$__$","typeString":"function (struct ILiquidity.token storage ref)"}},"id":1497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5201:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1498,"nodeType":"ExpressionStatement","src":"5201:14:7"},{"expression":{"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1499,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"5230:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1501,"indexExpression":{"id":1500,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5241:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5230:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1502,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"5251:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5251:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5230:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1505,"nodeType":"ExpressionStatement","src":"5230:34:7"},{"eventCall":{"arguments":[{"id":1507,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5297:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1508,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"5305:5:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1506,"name":"SupportToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"5284:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5284:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1510,"nodeType":"EmitStatement","src":"5279:32:7"}]}}]},"documentation":{"id":1468,"nodeType":"StructuredDocumentation","src":"4705:210:7","text":"Specifies list of supported tokens that can be invested in the Verified Liquidity token\\n@param  _token  address of token supported\\n@param  _name   name of token supported"},"functionSelector":"4ea14cab","id":1514,"implemented":true,"kind":"function","modifiers":[{"id":1475,"modifierName":{"id":1474,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"4990:9:7"},"nodeType":"ModifierInvocation","src":"4990:9:7"}],"name":"supportTokens","nodeType":"FunctionDefinition","parameters":{"id":1473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1470,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":1514,"src":"4944:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1469,"name":"address","nodeType":"ElementaryTypeName","src":"4944:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1472,"mutability":"mutable","name":"_name","nodeType":"VariableDeclaration","scope":1514,"src":"4960:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1471,"name":"string","nodeType":"ElementaryTypeName","src":"4960:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4943:37:7"},"returnParameters":{"id":1476,"nodeType":"ParameterList","parameters":[],"src":"5000:0:7"},"scope":3398,"src":"4921:409:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1532,"nodeType":"Block","src":"5589:109:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1522,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"5603:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1524,"indexExpression":{"id":1523,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1517,"src":"5614:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5603:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5622:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5603:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"hexValue":"66616c7365","id":1529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5685:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1521,"id":1530,"nodeType":"Return","src":"5678:12:7"},"id":1531,"nodeType":"IfStatement","src":"5600:90:7","trueBody":{"expression":{"hexValue":"74727565","id":1527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5645:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1521,"id":1528,"nodeType":"Return","src":"5638:11:7"}}]},"documentation":{"id":1515,"nodeType":"StructuredDocumentation","src":"5338:172:7","text":"Checks if a specified token is supported for investing in the Verified Liquidity token\\n@param  _token  token that is supported for investment"},"functionSelector":"5d4f5b1c","id":1533,"implemented":true,"kind":"function","modifiers":[],"name":"checkSupportForToken","nodeType":"FunctionDefinition","parameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":1533,"src":"5546:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1516,"name":"address","nodeType":"ElementaryTypeName","src":"5546:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5545:16:7"},"returnParameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1520,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1533,"src":"5584:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1519,"name":"bool","nodeType":"ElementaryTypeName","src":"5584:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5583:6:7"},"scope":3398,"src":"5516:182:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1543,"nodeType":"Block","src":"5844:32:7","statements":[{"expression":{"id":1541,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"5862:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"functionReturnParameters":1540,"id":1542,"nodeType":"Return","src":"5855:13:7"}]},"documentation":{"id":1534,"nodeType":"StructuredDocumentation","src":"5706:54:7","text":"Returns list of supported tokens"},"functionSelector":"d3c7c2c7","id":1544,"implemented":true,"kind":"function","modifiers":[],"name":"getSupportedTokens","nodeType":"FunctionDefinition","parameters":{"id":1535,"nodeType":"ParameterList","parameters":[],"src":"5793:2:7"},"returnParameters":{"id":1540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1539,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1544,"src":"5818:25:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_memory_ptr_$dyn_memory_ptr","typeString":"struct ILiquidity.token[]"},"typeName":{"baseType":{"id":1537,"nodeType":"UserDefinedTypeName","pathNode":{"id":1536,"name":"ILiquidity.token","nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"5818:16:7"},"referencedDeclaration":3587,"src":"5818:16:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage_ptr","typeString":"struct ILiquidity.token"}},"id":1538,"nodeType":"ArrayTypeName","src":"5818:18:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.token[]"}},"visibility":"internal"}],"src":"5817:27:7"},"scope":3398,"src":"5766:110:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1687,"nodeType":"Block","src":"5993:1055:7","statements":[{"assignments":[1553],"declarations":[{"constant":false,"id":1553,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":1687,"src":"6004:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1552,"name":"bool","nodeType":"ElementaryTypeName","src":"6004:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1555,"initialValue":{"hexValue":"66616c7365","id":1554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6017:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"6004:18:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1556,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6036:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1558,"indexExpression":{"id":1557,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6047:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6036:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6056:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6036:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"6033:1008:7","trueBody":{"id":1685,"nodeType":"Block","src":"6058:983:7","statements":[{"assignments":[1562],"declarations":[{"constant":false,"id":1562,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":1685,"src":"6073:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint","nodeType":"ElementaryTypeName","src":"6073:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1565,"initialValue":{"expression":{"id":1563,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6087:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6087:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6073:27:7"},{"body":{"id":1683,"nodeType":"Block","src":"6143:887:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1576,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6165:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1578,"indexExpression":{"id":1577,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6172:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6165:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6165:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1580,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6189:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6165:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":1633,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"6633:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1681,"nodeType":"IfStatement","src":"6630:385:7","trueBody":{"id":1680,"nodeType":"Block","src":"6639:376:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1634,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6665:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1635,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6668:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6668:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6682:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6668:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6665:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1678,"nodeType":"Block","src":"6824:172:7","statements":[{"expression":{"id":1660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1652,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6850:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1654,"indexExpression":{"id":1653,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6857:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6850:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1655,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6860:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1659,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6867:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6869:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6867:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6860:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"src":"6850:21:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1661,"nodeType":"ExpressionStatement","src":"6850:21:7"},{"expression":{"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1662,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6897:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1667,"indexExpression":{"expression":{"baseExpression":{"id":1663,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6908:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1665,"indexExpression":{"id":1664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6915:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6908:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6908:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6897:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1668,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6934:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1673,"indexExpression":{"expression":{"baseExpression":{"id":1669,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6945:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1671,"indexExpression":{"id":1670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6952:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6945:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6945:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6934:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6971:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6934:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6897:75:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1677,"nodeType":"ExpressionStatement","src":"6897:75:7"}]},"id":1679,"nodeType":"IfStatement","src":"6662:334:7","trueBody":{"id":1651,"nodeType":"Block","src":"6684:114:7","statements":[{"expression":{"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6710:16:7","subExpression":{"baseExpression":{"id":1640,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6717:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1642,"indexExpression":{"id":1641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6724:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6717:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1644,"nodeType":"ExpressionStatement","src":"6710:16:7"},{"expression":{"id":1649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1645,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6752:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1647,"indexExpression":{"id":1646,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6763:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6752:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6773:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6752:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1650,"nodeType":"ExpressionStatement","src":"6752:22:7"}]}}]}},"id":1682,"nodeType":"IfStatement","src":"6162:853:7","trueBody":{"id":1632,"nodeType":"Block","src":"6196:411:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6222:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1583,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6225:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6225:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6239:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6225:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6222:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1626,"nodeType":"Block","src":"6381:172:7","statements":[{"expression":{"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1600,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6407:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1602,"indexExpression":{"id":1601,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6414:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6407:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1603,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6417:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1607,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1604,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6424:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6426:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6424:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6417:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"src":"6407:21:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1609,"nodeType":"ExpressionStatement","src":"6407:21:7"},{"expression":{"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1610,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6454:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1615,"indexExpression":{"expression":{"baseExpression":{"id":1611,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6465:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1613,"indexExpression":{"id":1612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6472:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6465:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6465:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6454:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1616,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6491:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1621,"indexExpression":{"expression":{"baseExpression":{"id":1617,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6502:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1619,"indexExpression":{"id":1618,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6509:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6502:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6502:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6491:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6528:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6491:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6454:75:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1625,"nodeType":"ExpressionStatement","src":"6454:75:7"}]},"id":1627,"nodeType":"IfStatement","src":"6219:334:7","trueBody":{"id":1599,"nodeType":"Block","src":"6241:114:7","statements":[{"expression":{"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6267:16:7","subExpression":{"baseExpression":{"id":1588,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6274:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1590,"indexExpression":{"id":1589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6281:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6274:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1592,"nodeType":"ExpressionStatement","src":"6267:16:7"},{"expression":{"id":1597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1593,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6309:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1595,"indexExpression":{"id":1594,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6320:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6309:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6330:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6309:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1598,"nodeType":"ExpressionStatement","src":"6309:22:7"}]}},{"expression":{"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1628,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"6575:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6583:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6575:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1631,"nodeType":"ExpressionStatement","src":"6575:12:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6129:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1571,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"6131:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6129:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1684,"initializationExpression":{"assignments":[1567],"declarations":[{"constant":false,"id":1567,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":1684,"src":"6119:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1566,"name":"uint","nodeType":"ElementaryTypeName","src":"6119:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1569,"initialValue":{"hexValue":"30","id":1568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6126:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6119:8:7"},"loopExpression":{"expression":{"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6139:3:7","subExpression":{"id":1573,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6139:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1575,"nodeType":"ExpressionStatement","src":"6139:3:7"},"nodeType":"ForStatement","src":"6115:915:7"}]}}]},"documentation":{"id":1545,"nodeType":"StructuredDocumentation","src":"5884:47:7","text":"Removes a supported token"},"functionSelector":"5fa7b584","id":1688,"implemented":true,"kind":"function","modifiers":[{"id":1550,"modifierName":{"id":1549,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"5983:9:7"},"nodeType":"ModifierInvocation","src":"5983:9:7"}],"name":"removeToken","nodeType":"FunctionDefinition","parameters":{"id":1548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1547,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":1688,"src":"5958:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1546,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5957:16:7"},"returnParameters":{"id":1551,"nodeType":"ParameterList","parameters":[],"src":"5993:0:7"},"scope":3398,"src":"5937:1111:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1734,"nodeType":"Block","src":"7433:422:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1698,"name":"platformIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"7447:13:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1700,"indexExpression":{"id":1699,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7461:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7447:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7482:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7447:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1733,"nodeType":"IfStatement","src":"7444:404:7","trueBody":{"id":1732,"nodeType":"Block","src":"7484:364:7","statements":[{"assignments":[1707],"declarations":[{"constant":false,"id":1707,"mutability":"mutable","name":"p","nodeType":"VariableDeclaration","scope":1732,"src":"7499:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform"},"typeName":{"id":1706,"nodeType":"UserDefinedTypeName","pathNode":{"id":1705,"name":"ILiquidity.platform","nodeType":"IdentifierPath","referencedDeclaration":3582,"src":"7499:19:7"},"referencedDeclaration":3582,"src":"7499:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_storage_ptr","typeString":"struct ILiquidity.platform"}},"visibility":"internal"}],"id":1713,"initialValue":{"arguments":[{"id":1710,"name":"_platformName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"7583:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1711,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7632:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1708,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"7530:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"platform","nodeType":"MemberAccess","referencedDeclaration":3582,"src":"7530:19:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_platform_$3582_storage_ptr_$","typeString":"type(struct ILiquidity.platform storage pointer)"}},"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["platformName","platformAddress"],"nodeType":"FunctionCall","src":"7530:136:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform memory"}},"nodeType":"VariableDeclarationStatement","src":"7499:167:7"},{"expression":{"arguments":[{"id":1717,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"7696:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform memory"}],"expression":{"id":1714,"name":"platforms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1204,"src":"7681:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform storage ref[] storage ref"}},"id":1716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7681:14:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_platform_$3582_storage_$returns$__$","typeString":"function (struct ILiquidity.platform storage ref)"}},"id":1718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7681:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1719,"nodeType":"ExpressionStatement","src":"7681:17:7"},{"expression":{"id":1725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1720,"name":"platformIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"7713:13:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1722,"indexExpression":{"id":1721,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7727:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7713:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1723,"name":"platforms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1204,"src":"7749:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform storage ref[] storage ref"}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7749:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7713:52:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1726,"nodeType":"ExpressionStatement","src":"7713:52:7"},{"eventCall":{"arguments":[{"id":1728,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7802:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1729,"name":"_platformName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"7822:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1727,"name":"RegisterPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1336,"src":"7785:16:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7785:51:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1731,"nodeType":"EmitStatement","src":"7780:56:7"}]}}]},"documentation":{"id":1689,"nodeType":"StructuredDocumentation","src":"7056:275:7","text":"Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\\n@param  _liquidityPlatform  address of the market making platform\\n@param  _platformName       name of market making platform"},"functionSelector":"f81f3ee7","id":1735,"implemented":true,"kind":"function","modifiers":[{"id":1696,"modifierName":{"id":1695,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"7423:9:7"},"nodeType":"ModifierInvocation","src":"7423:9:7"}],"name":"registerPlatform","nodeType":"FunctionDefinition","parameters":{"id":1694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1691,"mutability":"mutable","name":"_liquidityPlatform","nodeType":"VariableDeclaration","scope":1735,"src":"7363:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"7363:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1693,"mutability":"mutable","name":"_platformName","nodeType":"VariableDeclaration","scope":1735,"src":"7391:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7391:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7362:51:7"},"returnParameters":{"id":1697,"nodeType":"ParameterList","parameters":[],"src":"7433:0:7"},"scope":3398,"src":"7337:518:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1745,"nodeType":"Block","src":"8003:35:7","statements":[{"expression":{"id":1743,"name":"platforms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1204,"src":"8021:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform storage ref[] storage ref"}},"functionReturnParameters":1742,"id":1744,"nodeType":"Return","src":"8014:16:7"}]},"documentation":{"id":1736,"nodeType":"StructuredDocumentation","src":"7867:55:7","text":"Gets list of registered platforms"},"functionSelector":"1fbe552e","id":1746,"implemented":true,"kind":"function","modifiers":[],"name":"getPlatforms","nodeType":"FunctionDefinition","parameters":{"id":1737,"nodeType":"ParameterList","parameters":[],"src":"7949:2:7"},"returnParameters":{"id":1742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1741,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1746,"src":"7974:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_memory_ptr_$dyn_memory_ptr","typeString":"struct ILiquidity.platform[]"},"typeName":{"baseType":{"id":1739,"nodeType":"UserDefinedTypeName","pathNode":{"id":1738,"name":"ILiquidity.platform","nodeType":"IdentifierPath","referencedDeclaration":3582,"src":"7974:19:7"},"referencedDeclaration":3582,"src":"7974:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_storage_ptr","typeString":"struct ILiquidity.platform"}},"id":1740,"nodeType":"ArrayTypeName","src":"7974:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.platform[]"}},"visibility":"internal"}],"src":"7973:30:7"},"scope":3398,"src":"7928:110:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1788,"nodeType":"Block","src":"8323:253:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1756,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"8337:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1758,"indexExpression":{"id":1757,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8350:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8337:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1760,"indexExpression":{"id":1759,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8361:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8337:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8372:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8337:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1787,"nodeType":"IfStatement","src":"8334:235:7","trueBody":{"id":1786,"nodeType":"Block","src":"8374:195:7","statements":[{"expression":{"arguments":[{"id":1767,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8414:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":1763,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"8389:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1765,"indexExpression":{"id":1764,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8398:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8389:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"8389:24:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8389:34:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1769,"nodeType":"ExpressionStatement","src":"8389:34:7"},{"expression":{"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1770,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"8438:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1773,"indexExpression":{"id":1771,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8451:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8438:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1774,"indexExpression":{"id":1772,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8462:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8438:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":1775,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"8474:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1777,"indexExpression":{"id":1776,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8483:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8474:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8474:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8438:62:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1780,"nodeType":"ExpressionStatement","src":"8438:62:7"},{"eventCall":{"arguments":[{"id":1782,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8537:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1783,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8548:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1781,"name":"PlatformManagers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1342,"src":"8520:16:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8520:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1785,"nodeType":"EmitStatement","src":"8515:42:7"}]}}]},"documentation":{"id":1747,"nodeType":"StructuredDocumentation","src":"8046:195:7","text":"Adds asset manager for managing liquidity\\n@param  _platform   address of market making platform (eg, Balancer)\\n@param  _manager    address of asset manager"},"functionSelector":"8513c619","id":1789,"implemented":true,"kind":"function","modifiers":[{"id":1754,"modifierName":{"id":1753,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"8313:9:7"},"nodeType":"ModifierInvocation","src":"8313:9:7"}],"name":"addManager","nodeType":"FunctionDefinition","parameters":{"id":1752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1749,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":1789,"src":"8267:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1748,"name":"address","nodeType":"ElementaryTypeName","src":"8267:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1751,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":1789,"src":"8286:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1750,"name":"address","nodeType":"ElementaryTypeName","src":"8286:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8266:37:7"},"returnParameters":{"id":1755,"nodeType":"ParameterList","parameters":[],"src":"8323:0:7"},"scope":3398,"src":"8247:329:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1971,"nodeType":"Block","src":"8865:1271:7","statements":[{"assignments":[1800],"declarations":[{"constant":false,"id":1800,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":1971,"src":"8876:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1799,"name":"bool","nodeType":"ElementaryTypeName","src":"8876:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1802,"initialValue":{"hexValue":"66616c7365","id":1801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8889:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"8876:18:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1803,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"8908:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1805,"indexExpression":{"id":1804,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"8921:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8908:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1807,"indexExpression":{"id":1806,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"8932:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8908:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8943:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8908:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1970,"nodeType":"IfStatement","src":"8905:1224:7","trueBody":{"id":1969,"nodeType":"Block","src":"8945:1184:7","statements":[{"assignments":[1811],"declarations":[{"constant":false,"id":1811,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":1969,"src":"8960:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1810,"name":"uint","nodeType":"ElementaryTypeName","src":"8960:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1816,"initialValue":{"expression":{"baseExpression":{"id":1812,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"8974:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1814,"indexExpression":{"id":1813,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"8983:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8974:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8974:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8960:40:7"},{"body":{"id":1967,"nodeType":"Block","src":"9043:1075:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1827,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9065:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1829,"indexExpression":{"id":1828,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9074:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9065:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1831,"indexExpression":{"id":1830,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9085:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9065:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1832,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9089:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9065:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":1901,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9628:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1965,"nodeType":"IfStatement","src":"9625:478:7","trueBody":{"id":1964,"nodeType":"Block","src":"9634:469:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1902,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9660:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1903,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9663:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1905,"indexExpression":{"id":1904,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9672:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9663:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9663:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9690:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9663:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9660:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1962,"nodeType":"Block","src":"9860:224:7","statements":[{"expression":{"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1926,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9886:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1929,"indexExpression":{"id":1927,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9895:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9886:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1930,"indexExpression":{"id":1928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9906:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9886:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":1931,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9909:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1933,"indexExpression":{"id":1932,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9918:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9909:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1937,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1934,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9929:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9931:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9929:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9909:24:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9886:47:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1939,"nodeType":"ExpressionStatement","src":"9886:47:7"},{"expression":{"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1940,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9959:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1947,"indexExpression":{"id":1941,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9972:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9959:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1948,"indexExpression":{"baseExpression":{"baseExpression":{"id":1942,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9983:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1944,"indexExpression":{"id":1943,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9992:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9983:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1946,"indexExpression":{"id":1945,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"10003:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9983:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9959:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1949,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"10009:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1951,"indexExpression":{"id":1950,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"10022:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10009:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1957,"indexExpression":{"baseExpression":{"baseExpression":{"id":1952,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"10033:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1954,"indexExpression":{"id":1953,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"10042:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10033:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1956,"indexExpression":{"id":1955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"10053:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10033:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10009:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10059:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10009:51:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9959:101:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1961,"nodeType":"ExpressionStatement","src":"9959:101:7"}]},"id":1963,"nodeType":"IfStatement","src":"9657:427:7","trueBody":{"id":1925,"nodeType":"Block","src":"9692:142:7","statements":[{"expression":{"id":1915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9718:29:7","subExpression":{"baseExpression":{"baseExpression":{"id":1910,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9725:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1912,"indexExpression":{"id":1911,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9734:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9725:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1914,"indexExpression":{"id":1913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9745:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9725:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1916,"nodeType":"ExpressionStatement","src":"9718:29:7"},{"expression":{"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1917,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9773:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1920,"indexExpression":{"id":1918,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9786:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9773:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1921,"indexExpression":{"id":1919,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9797:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9773:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9809:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9773:37:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1924,"nodeType":"ExpressionStatement","src":"9773:37:7"}]}}]}},"id":1966,"nodeType":"IfStatement","src":"9062:1041:7","trueBody":{"id":1900,"nodeType":"Block","src":"9098:504:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1834,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9124:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1835,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9127:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1837,"indexExpression":{"id":1836,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9136:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9127:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9127:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9154:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9127:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9124:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1894,"nodeType":"Block","src":"9324:224:7","statements":[{"expression":{"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1858,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9350:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1861,"indexExpression":{"id":1859,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9359:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9350:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1862,"indexExpression":{"id":1860,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9370:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9350:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":1863,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9373:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1865,"indexExpression":{"id":1864,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9382:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9373:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1869,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1866,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9393:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9395:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9393:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9373:24:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9350:47:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1871,"nodeType":"ExpressionStatement","src":"9350:47:7"},{"expression":{"id":1892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1872,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9423:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1879,"indexExpression":{"id":1873,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9436:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9423:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1880,"indexExpression":{"baseExpression":{"baseExpression":{"id":1874,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9447:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1876,"indexExpression":{"id":1875,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9456:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1878,"indexExpression":{"id":1877,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9467:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9423:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1881,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9473:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1883,"indexExpression":{"id":1882,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9486:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9473:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1889,"indexExpression":{"baseExpression":{"baseExpression":{"id":1884,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9497:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1886,"indexExpression":{"id":1885,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9506:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9497:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1888,"indexExpression":{"id":1887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9517:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9497:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9473:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9523:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9473:51:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9423:101:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1893,"nodeType":"ExpressionStatement","src":"9423:101:7"}]},"id":1895,"nodeType":"IfStatement","src":"9121:427:7","trueBody":{"id":1857,"nodeType":"Block","src":"9156:142:7","statements":[{"expression":{"id":1847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9182:29:7","subExpression":{"baseExpression":{"baseExpression":{"id":1842,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9189:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1844,"indexExpression":{"id":1843,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9198:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9189:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1846,"indexExpression":{"id":1845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9209:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9189:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1848,"nodeType":"ExpressionStatement","src":"9182:29:7"},{"expression":{"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1849,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9237:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1852,"indexExpression":{"id":1850,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9250:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9237:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1853,"indexExpression":{"id":1851,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9261:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9237:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9273:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9237:37:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1856,"nodeType":"ExpressionStatement","src":"9237:37:7"}]}},{"expression":{"id":1898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1896,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9570:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9578:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9570:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1899,"nodeType":"ExpressionStatement","src":"9570:12:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1821,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9029:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1822,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1811,"src":"9031:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9029:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1968,"initializationExpression":{"assignments":[1818],"declarations":[{"constant":false,"id":1818,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":1968,"src":"9019:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1817,"name":"uint","nodeType":"ElementaryTypeName","src":"9019:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1820,"initialValue":{"hexValue":"30","id":1819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9019:8:7"},"loopExpression":{"expression":{"id":1825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9039:3:7","subExpression":{"id":1824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9039:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1826,"nodeType":"ExpressionStatement","src":"9039:3:7"},"nodeType":"ForStatement","src":"9015:1103:7"}]}}]},"documentation":{"id":1790,"nodeType":"StructuredDocumentation","src":"8585:195:7","text":"Removes asset manager for managing liquidity on platform\\n@param  _platform   address of market making platform\\n@param  _manager    address of asset manager"},"functionSelector":"f85771b2","id":1972,"implemented":true,"kind":"function","modifiers":[{"id":1797,"modifierName":{"id":1796,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"8855:9:7"},"nodeType":"ModifierInvocation","src":"8855:9:7"}],"name":"removeManager","nodeType":"FunctionDefinition","parameters":{"id":1795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1792,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":1972,"src":"8809:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1791,"name":"address","nodeType":"ElementaryTypeName","src":"8809:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1794,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":1972,"src":"8828:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1793,"name":"address","nodeType":"ElementaryTypeName","src":"8828:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8808:37:7"},"returnParameters":{"id":1798,"nodeType":"ParameterList","parameters":[],"src":"8865:0:7"},"scope":3398,"src":"8786:1350:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1987,"nodeType":"Block","src":"10366:45:7","statements":[{"expression":{"baseExpression":{"id":1983,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"10384:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1985,"indexExpression":{"id":1984,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"10393:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10384:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":1982,"id":1986,"nodeType":"Return","src":"10377:26:7"}]},"documentation":{"id":1973,"nodeType":"StructuredDocumentation","src":"10144:127:7","text":"Gets asset managers for managing liquidity\\n@param  _platform   address of market making platform"},"functionSelector":"33060226","id":1988,"implemented":true,"kind":"function","modifiers":[{"id":1978,"modifierName":{"id":1977,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"10331:9:7"},"nodeType":"ModifierInvocation","src":"10331:9:7"}],"name":"getManagers","nodeType":"FunctionDefinition","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1975,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":1988,"src":"10298:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1974,"name":"address","nodeType":"ElementaryTypeName","src":"10298:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10297:19:7"},"returnParameters":{"id":1982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1981,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1988,"src":"10349:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1979,"name":"address","nodeType":"ElementaryTypeName","src":"10349:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1980,"nodeType":"ArrayTypeName","src":"10349:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10348:18:7"},"scope":3398,"src":"10277:134:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2040,"nodeType":"Block","src":"10471:301:7","statements":[{"assignments":[1994],"declarations":[{"constant":false,"id":1994,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":2040,"src":"10482:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1993,"name":"bool","nodeType":"ElementaryTypeName","src":"10482:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1996,"initialValue":{"hexValue":"66616c7365","id":1995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10495:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"10482:18:7"},{"assignments":[1998],"declarations":[{"constant":false,"id":1998,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":2040,"src":"10511:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1997,"name":"uint","nodeType":"ElementaryTypeName","src":"10511:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2001,"initialValue":{"expression":{"id":1999,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"10525:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10525:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10511:27:7"},{"body":{"id":2028,"nodeType":"Block","src":"10580:120:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2012,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"10598:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2014,"indexExpression":{"id":2013,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"10608:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10598:19:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2019,"indexExpression":{"expression":{"baseExpression":{"id":2015,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"10618:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":2017,"indexExpression":{"id":2016,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"10625:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10618:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":2018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"10618:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10598:43:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"10598:55:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10656:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10598:59:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2027,"nodeType":"IfStatement","src":"10595:93:7","trueBody":{"expression":{"id":2025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2023,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1994,"src":"10676:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10684:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10676:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2026,"nodeType":"ExpressionStatement","src":"10676:12:7"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2006,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"10566:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2007,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1998,"src":"10568:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10566:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2029,"initializationExpression":{"assignments":[2003],"declarations":[{"constant":false,"id":2003,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":2029,"src":"10553:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2002,"name":"uint256","nodeType":"ElementaryTypeName","src":"10553:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2005,"initialValue":{"hexValue":"30","id":2004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10563:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10553:11:7"},"loopExpression":{"expression":{"id":2010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10576:3:7","subExpression":{"id":2009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"10576:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2011,"nodeType":"ExpressionStatement","src":"10576:3:7"},"nodeType":"ForStatement","src":"10549:151:7"},{"condition":{"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10713:6:7","subExpression":{"id":2030,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1994,"src":"10714:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2039,"nodeType":"IfStatement","src":"10710:55:7","trueBody":{"id":2038,"nodeType":"Block","src":"10720:45:7","statements":[{"expression":{"arguments":[{"id":2035,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"10744:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2032,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"10735:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"10735:8:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10735:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2037,"nodeType":"ExpressionStatement","src":"10735:18:7"}]}}]},"id":2041,"implemented":true,"kind":"function","modifiers":[],"name":"saveInvestor","nodeType":"FunctionDefinition","parameters":{"id":1991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1990,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":2041,"src":"10445:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1989,"name":"address","nodeType":"ElementaryTypeName","src":"10445:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10444:18:7"},"returnParameters":{"id":1992,"nodeType":"ParameterList","parameters":[],"src":"10471:0:7"},"scope":3398,"src":"10423:349:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2238,"nodeType":"Block","src":"10892:1403:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2045,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"10906:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10917:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10906:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2056,"nodeType":"IfStatement","src":"10903:98:7","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2049,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"10941:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":2050,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10953:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10953:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10941:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537562736372697074696f6e2077696e646f77206272656163686564","id":2053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10970:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""},"value":"Subscription window breached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""}],"id":2048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10933:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10933:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2055,"nodeType":"ExpressionStatement","src":"10933:68:7"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2058,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11045:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"11045:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11045:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5a65726f206574682073656e74","id":2062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11060:15:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb","typeString":"literal_string \\"Zero eth sent\\""},"value":"Zero eth sent"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb","typeString":"literal_string \\"Zero eth sent\\""}],"id":2057,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11037:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11037:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2064,"nodeType":"ExpressionStatement","src":"11037:39:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2066,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"11134:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11134:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11146:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"11134:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11153:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2065,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11126:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11126:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2072,"nodeType":"ExpressionStatement","src":"11126:54:7"},{"expression":{"arguments":[{"id":2077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11227:21:7","subExpression":{"baseExpression":{"id":2074,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"11228:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2076,"indexExpression":{"hexValue":"657468657272656365697074","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11233:14:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df0a7b8fc6ef41fb27a7f59b70c461675fea7bfde1166fd93082ded894ebd41","typeString":"literal_string \\"etherreceipt\\""},"value":"etherreceipt"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11228:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2061766f6964207265656e7472616e6379","id":2078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11250:28:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceaa3b02d373c2ad73562e084b288c6a1deb5ca6fad548fa2aff492271ebb58d","typeString":"literal_string \\"Locked to avoid reentrancy\\""},"value":"Locked to avoid reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ceaa3b02d373c2ad73562e084b288c6a1deb5ca6fad548fa2aff492271ebb58d","typeString":"literal_string \\"Locked to avoid reentrancy\\""}],"id":2073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11219:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11219:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2080,"nodeType":"ExpressionStatement","src":"11219:60:7"},{"expression":{"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2081,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"11290:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2083,"indexExpression":{"hexValue":"657468657272656365697074","id":2082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11295:14:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df0a7b8fc6ef41fb27a7f59b70c461675fea7bfde1166fd93082ded894ebd41","typeString":"literal_string \\"etherreceipt\\""},"value":"etherreceipt"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11290:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11313:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11290:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2086,"nodeType":"ExpressionStatement","src":"11290:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2087,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"11372:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2090,"indexExpression":{"expression":{"id":2088,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11382:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11382:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11372:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2095,"indexExpression":{"arguments":[{"hexValue":"307830","id":2093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11402:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11394:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2091,"name":"address","nodeType":"ElementaryTypeName","src":"11394:7:7","typeDescriptions":{}}},"id":2094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11394:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11372:35:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"11372:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11421:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11372:50:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2121,"nodeType":"IfStatement","src":"11369:277:7","trueBody":{"id":2120,"nodeType":"Block","src":"11423:223:7","statements":[{"assignments":[2103],"declarations":[{"constant":false,"id":2103,"mutability":"mutable","name":"lp","nodeType":"VariableDeclaration","scope":2120,"src":"11438:29:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider"},"typeName":{"id":2102,"nodeType":"UserDefinedTypeName","pathNode":{"id":2101,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"11438:19:7"},"referencedDeclaration":3592,"src":"11438:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"visibility":"internal"}],"id":2113,"initialValue":{"arguments":[{"arguments":[{"hexValue":"6574686572","id":2108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11531:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a","typeString":"literal_string \\"ether\\""},"value":"ether"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a","typeString":"literal_string \\"ether\\""}],"id":2107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11524:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2106,"name":"string","nodeType":"ElementaryTypeName","src":"11524:6:7","typeDescriptions":{}}},"id":2109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11524:15:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11575:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11575:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2104,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"11470:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"provider","nodeType":"MemberAccess","referencedDeclaration":3592,"src":"11470:19:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_provider_$3592_storage_ptr_$","typeString":"type(struct ILiquidity.provider storage pointer)"}},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["assetInvested","investorAddress"],"nodeType":"FunctionCall","src":"11470:131:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}},"nodeType":"VariableDeclarationStatement","src":"11438:163:7"},{"expression":{"arguments":[{"id":2117,"name":"lp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2103,"src":"11631:2:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}],"expression":{"id":2114,"name":"providers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"11616:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider storage ref[] storage ref"}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"11616:14:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_provider_$3592_storage_$returns$__$","typeString":"function (struct ILiquidity.provider storage ref)"}},"id":2118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11616:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2119,"nodeType":"ExpressionStatement","src":"11616:18:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2122,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"11659:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2125,"indexExpression":{"expression":{"id":2123,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11667:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11667:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11659:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11680:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11659:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2144,"nodeType":"IfStatement","src":"11656:120:7","trueBody":{"id":2143,"nodeType":"Block","src":"11682:94:7","statements":[{"expression":{"arguments":[{"expression":{"id":2131,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11706:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11706:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2128,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"11697:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"11697:8:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11697:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2134,"nodeType":"ExpressionStatement","src":"11697:20:7"},{"expression":{"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2135,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"11732:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2138,"indexExpression":{"expression":{"id":2136,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11740:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11740:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11732:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":2139,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"11754:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11754:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11732:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2142,"nodeType":"ExpressionStatement","src":"11732:32:7"}]}},{"expression":{"id":2170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2145,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"11786:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2152,"indexExpression":{"expression":{"id":2146,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11796:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11796:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11786:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2153,"indexExpression":{"arguments":[{"hexValue":"307830","id":2150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11816:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11808:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2148,"name":"address","nodeType":"ElementaryTypeName","src":"11808:7:7","typeDescriptions":{}}},"id":2151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11808:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11786:35:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"11786:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2157,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"11849:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2160,"indexExpression":{"expression":{"id":2158,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11859:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11859:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11849:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2165,"indexExpression":{"arguments":[{"hexValue":"307830","id":2163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11879:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11871:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2161,"name":"address","nodeType":"ElementaryTypeName","src":"11871:7:7","typeDescriptions":{}}},"id":2164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11871:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11849:35:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"11849:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2167,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11898:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"11898:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2155,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"11836:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"11836:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11836:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11786:122:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2171,"nodeType":"ExpressionStatement","src":"11786:122:7"},{"eventCall":{"arguments":[{"expression":{"id":2173,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11937:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11937:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"307830","id":2177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11949:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2175,"name":"address","nodeType":"ElementaryTypeName","src":"11949:7:7","typeDescriptions":{}}},"id":2178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11949:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2179,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11963:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"11963:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2181,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11974:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11974:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2172,"name":"RequestIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"11924:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11924:66:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2184,"nodeType":"EmitStatement","src":"11919:71:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2185,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"12004:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2190,"indexExpression":{"arguments":[{"hexValue":"307830","id":2188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12025:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12017:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2186,"name":"address","nodeType":"ElementaryTypeName","src":"12017:7:7","typeDescriptions":{}}},"id":2189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12017:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12004:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12032:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12004:29:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2231,"nodeType":"IfStatement","src":"12001:248:7","trueBody":{"id":2230,"nodeType":"Block","src":"12034:215:7","statements":[{"expression":{"arguments":[{"expression":{"id":2194,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"12060:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12060:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"307830","id":2198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12080:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12072:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2196,"name":"address","nodeType":"ElementaryTypeName","src":"12072:7:7","typeDescriptions":{}}},"id":2199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12072:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"12086:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"12086:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":2204,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"12116:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"12116:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":2206,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"12127:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2211,"indexExpression":{"arguments":[{"hexValue":"307830","id":2209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12148:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12140:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2207,"name":"address","nodeType":"ElementaryTypeName","src":"12140:7:7","typeDescriptions":{}}},"id":2210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12140:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12127:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2202,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"12097:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"12097:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12097:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2213,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"12156:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12156:7:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2193,"name":"issueVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2710,"src":"12049:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address)"}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12049:115:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2216,"nodeType":"ExpressionStatement","src":"12049:115:7"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"307830","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12204:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12196:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2218,"name":"address","nodeType":"ElementaryTypeName","src":"12196:7:7","typeDescriptions":{}}},"id":2221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12196:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":2222,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"12210:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2227,"indexExpression":{"arguments":[{"hexValue":"307830","id":2225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12231:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12223:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2223,"name":"address","nodeType":"ElementaryTypeName","src":"12223:7:7","typeDescriptions":{}}},"id":2226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12223:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12210:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2217,"name":"RequestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"12184:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12184:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2229,"nodeType":"EmitStatement","src":"12179:58:7"}]}},{"expression":{"id":2236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2232,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"12259:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2234,"indexExpression":{"hexValue":"657468657272656365697074","id":2233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12264:14:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df0a7b8fc6ef41fb27a7f59b70c461675fea7bfde1166fd93082ded894ebd41","typeString":"literal_string \\"etherreceipt\\""},"value":"etherreceipt"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12259:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12282:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12259:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2237,"nodeType":"ExpressionStatement","src":"12259:28:7"}]},"documentation":{"id":2042,"nodeType":"StructuredDocumentation","src":"10780:80:7","text":"Receiver of ether invested in the Verified Liquidity token"},"id":2239,"implemented":true,"kind":"receive","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":2043,"nodeType":"ParameterList","parameters":[],"src":"10873:2:7"},"returnParameters":{"id":2044,"nodeType":"ParameterList","parameters":[],"src":"10892:0:7"},"scope":3398,"src":"10866:1429:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":2450,"nodeType":"Block","src":"12672:1639:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2247,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"12686:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12697:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12686:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2258,"nodeType":"IfStatement","src":"12683:98:7","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2251,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"12721:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":2252,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12733:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12733:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12721:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537562736372697074696f6e2077696e646f77206272656163686564","id":2255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12750:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""},"value":"Subscription window breached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""}],"id":2250,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12713:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12713:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2257,"nodeType":"ExpressionStatement","src":"12713:68:7"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2260,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"12800:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12800:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12812:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12800:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12819:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12792:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12792:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2266,"nodeType":"ExpressionStatement","src":"12792:54:7"},{"assignments":[2268],"declarations":[{"constant":false,"id":2268,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":2450,"src":"12857:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2267,"name":"bool","nodeType":"ElementaryTypeName","src":"12857:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2270,"initialValue":{"hexValue":"66616c7365","id":2269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12870:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"12857:18:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2271,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"12889:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2273,"indexExpression":{"id":2272,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"12900:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12889:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12908:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12889:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2280,"nodeType":"IfStatement","src":"12886:50:7","trueBody":{"expression":{"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2276,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"12924:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12932:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12924:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2279,"nodeType":"ExpressionStatement","src":"12924:12:7"}},{"condition":{"id":2281,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"12950:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2449,"nodeType":"IfStatement","src":"12947:1357:7","trueBody":{"id":2448,"nodeType":"Block","src":"12956:1348:7","statements":[{"expression":{"arguments":[{"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12979:12:7","subExpression":{"baseExpression":{"id":2283,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"12980:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2285,"indexExpression":{"hexValue":"627579","id":2284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12985:5:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc","typeString":"literal_string \\"buy\\""},"value":"buy"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12980:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e74207265656e7472616e6379","id":2287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12993:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""},"value":"Locked to prevent reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""}],"id":2282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12971:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12971:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2289,"nodeType":"ExpressionStatement","src":"12971:53:7"},{"expression":{"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2290,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"13039:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2292,"indexExpression":{"hexValue":"627579","id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13044:5:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc","typeString":"literal_string \\"buy\\""},"value":"buy"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13039:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13053:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13039:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2295,"nodeType":"ExpressionStatement","src":"13039:18:7"},{"condition":{"arguments":[{"expression":{"id":2300,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13103:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13103:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2304,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"13123:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}],"id":2303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13115:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2302,"name":"address","nodeType":"ElementaryTypeName","src":"13115:7:7","typeDescriptions":{}}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13115:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2306,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"13130:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2297,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13082:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2296,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"13075:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13075:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":800,"src":"13075:27:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":2307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13075:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2441,"nodeType":"IfStatement","src":"13072:1187:7","trueBody":{"id":2440,"nodeType":"Block","src":"13139:1120:7","statements":[{"eventCall":{"arguments":[{"expression":{"id":2309,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13176:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13176:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2311,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13188:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2312,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"13196:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2313,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13205:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13205:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2308,"name":"RequestIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"13163:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":2315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13163:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2316,"nodeType":"EmitStatement","src":"13158:63:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2317,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"13243:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2320,"indexExpression":{"expression":{"id":2318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13251:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13251:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13243:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13264:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13243:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2339,"nodeType":"IfStatement","src":"13240:144:7","trueBody":{"id":2338,"nodeType":"Block","src":"13266:118:7","statements":[{"expression":{"arguments":[{"expression":{"id":2326,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13298:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13298:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2323,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"13289:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"13289:8:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13289:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2329,"nodeType":"ExpressionStatement","src":"13289:20:7"},{"expression":{"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2330,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"13332:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2333,"indexExpression":{"expression":{"id":2331,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13340:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13340:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13332:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":2334,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"13354:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13354:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13332:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2337,"nodeType":"ExpressionStatement","src":"13332:32:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2340,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13405:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2343,"indexExpression":{"expression":{"id":2341,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13415:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13415:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13405:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2345,"indexExpression":{"id":2344,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13427:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13405:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"13405:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13448:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13405:44:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2372,"nodeType":"IfStatement","src":"13402:324:7","trueBody":{"id":2371,"nodeType":"Block","src":"13450:276:7","statements":[{"assignments":[2353],"declarations":[{"constant":false,"id":2353,"mutability":"mutable","name":"lp","nodeType":"VariableDeclaration","scope":2371,"src":"13473:29:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider"},"typeName":{"id":2352,"nodeType":"UserDefinedTypeName","pathNode":{"id":2351,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"13473:19:7"},"referencedDeclaration":3592,"src":"13473:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"visibility":"internal"}],"id":2364,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2357,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13573:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2356,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"13567:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$741_$","typeString":"type(contract ERC20)"}},"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13567:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$741","typeString":"contract ERC20"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":250,"src":"13567:18:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13567:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2361,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13631:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13631:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2354,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"13505:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":2355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"provider","nodeType":"MemberAccess","referencedDeclaration":3592,"src":"13505:19:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_provider_$3592_storage_ptr_$","typeString":"type(struct ILiquidity.provider storage pointer)"}},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["assetInvested","investorAddress"],"nodeType":"FunctionCall","src":"13505:160:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}},"nodeType":"VariableDeclarationStatement","src":"13473:192:7"},{"expression":{"arguments":[{"id":2368,"name":"lp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"13703:2:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}],"expression":{"id":2365,"name":"providers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"13688:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider storage ref[] storage ref"}},"id":2367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"13688:14:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_provider_$3592_storage_$returns$__$","typeString":"function (struct ILiquidity.provider storage ref)"}},"id":2369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13688:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2370,"nodeType":"ExpressionStatement","src":"13688:18:7"}]}},{"expression":{"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2373,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13744:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2377,"indexExpression":{"expression":{"id":2374,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13754:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13754:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13744:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2378,"indexExpression":{"id":2376,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13766:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13744:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"13744:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2382,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13801:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2385,"indexExpression":{"expression":{"id":2383,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13811:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13811:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13801:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2387,"indexExpression":{"id":2386,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13823:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13801:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"13801:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2389,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"13844:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2380,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"13788:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"13788:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13788:64:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13744:108:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2392,"nodeType":"ExpressionStatement","src":"13744:108:7"},{"expression":{"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2393,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13871:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2397,"indexExpression":{"expression":{"id":2394,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13881:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13881:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2398,"indexExpression":{"id":2396,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13893:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"13871:42:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2400,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13916:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13871:51:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2402,"nodeType":"ExpressionStatement","src":"13871:51:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2403,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"13960:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2405,"indexExpression":{"id":2404,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13973:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13960:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13982:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13960:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2439,"nodeType":"IfStatement","src":"13957:287:7","trueBody":{"id":2438,"nodeType":"Block","src":"13984:260:7","statements":[{"expression":{"arguments":[{"expression":{"id":2409,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"14018:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14018:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2411,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14030:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2412,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"14038:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2416,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"14075:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2419,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14113:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2418,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"14106:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14106:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":2417,"name":"_computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"14084:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC20_$819_$returns$_t_uint256_$","typeString":"function (contract IERC20) view returns (uint256)"}},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14084:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2415,"name":"_upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14066:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14066:56:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":2423,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"14124:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2425,"indexExpression":{"id":2424,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14137:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14124:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2413,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"14047:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"14047:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14047:98:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2427,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"14147:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14147:7:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2408,"name":"issueVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2710,"src":"14007:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address)"}},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14007:148:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2430,"nodeType":"ExpressionStatement","src":"14007:148:7"},{"eventCall":{"arguments":[{"id":2432,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14195:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":2433,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"14203:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2435,"indexExpression":{"id":2434,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14216:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14203:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2431,"name":"RequestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"14183:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14183:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2437,"nodeType":"EmitStatement","src":"14178:46:7"}]}}]}},{"expression":{"id":2446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2442,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"14273:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2444,"indexExpression":{"hexValue":"627579","id":2443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14278:5:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc","typeString":"literal_string \\"buy\\""},"value":"buy"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14273:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14287:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"14273:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2447,"nodeType":"ExpressionStatement","src":"14273:19:7"}]}}]},"documentation":{"id":2240,"nodeType":"StructuredDocumentation","src":"12303:308:7","text":"Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \\n@param  _token  address of token used by investor to buy the VITTA\\n@param  _amount amount of token that is transferred from investor to this VITTA issuing contract\'s account for the investor"},"functionSelector":"cce7ec13","id":2451,"implemented":true,"kind":"function","modifiers":[],"name":"buy","nodeType":"FunctionDefinition","parameters":{"id":2245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2242,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2451,"src":"12630:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2241,"name":"address","nodeType":"ElementaryTypeName","src":"12630:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2244,"mutability":"mutable","name":"_amount","nodeType":"VariableDeclaration","scope":2451,"src":"12646:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2243,"name":"uint256","nodeType":"ElementaryTypeName","src":"12646:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12629:33:7"},"returnParameters":{"id":2246,"nodeType":"ParameterList","parameters":[],"src":"12672:0:7"},"scope":3398,"src":"12617:1694:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2463,"nodeType":"Block","src":"14458:35:7","statements":[{"expression":{"id":2461,"name":"providers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"14476:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider storage ref[] storage ref"}},"functionReturnParameters":2460,"id":2462,"nodeType":"Return","src":"14469:16:7"}]},"documentation":{"id":2452,"nodeType":"StructuredDocumentation","src":"14319:48:7","text":"Fetches investors in VITTA"},"functionSelector":"b2f5a54c","id":2464,"implemented":true,"kind":"function","modifiers":[{"id":2455,"modifierName":{"id":2454,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"14411:9:7"},"nodeType":"ModifierInvocation","src":"14411:9:7"}],"name":"getInvestors","nodeType":"FunctionDefinition","parameters":{"id":2453,"nodeType":"ParameterList","parameters":[],"src":"14394:2:7"},"returnParameters":{"id":2460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2459,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2464,"src":"14429:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_memory_ptr_$dyn_memory_ptr","typeString":"struct ILiquidity.provider[]"},"typeName":{"baseType":{"id":2457,"nodeType":"UserDefinedTypeName","pathNode":{"id":2456,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"14429:19:7"},"referencedDeclaration":3592,"src":"14429:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"id":2458,"nodeType":"ArrayTypeName","src":"14429:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.provider[]"}},"visibility":"internal"}],"src":"14428:30:7"},"scope":3398,"src":"14373:120:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2484,"nodeType":"Block","src":"14799:68:7","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":2476,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"14818:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2478,"indexExpression":{"id":2477,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2467,"src":"14828:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14818:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2480,"indexExpression":{"id":2479,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2469,"src":"14839:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14818:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"14818:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2482,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14817:42:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2475,"id":2483,"nodeType":"Return","src":"14810:49:7"}]},"documentation":{"id":2465,"nodeType":"StructuredDocumentation","src":"14501:194:7","text":"Fetches investment detail for specific investor in VITTA\\n@param  _investor   address of investor\\n@param  _token      address of token invested by investor"},"functionSelector":"cac7495c","id":2485,"implemented":true,"kind":"function","modifiers":[{"id":2472,"modifierName":{"id":2471,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"14773:9:7"},"nodeType":"ModifierInvocation","src":"14773:9:7"}],"name":"getInvestment","nodeType":"FunctionDefinition","parameters":{"id":2470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2467,"mutability":"mutable","name":"_investor","nodeType":"VariableDeclaration","scope":2485,"src":"14724:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2466,"name":"address","nodeType":"ElementaryTypeName","src":"14724:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2469,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2485,"src":"14743:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2468,"name":"address","nodeType":"ElementaryTypeName","src":"14743:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14723:35:7"},"returnParameters":{"id":2475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2474,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2485,"src":"14791:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2473,"name":"uint256","nodeType":"ElementaryTypeName","src":"14791:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14790:9:7"},"scope":3398,"src":"14701:166:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2508,"nodeType":"Block","src":"15386:86:7","statements":[{"expression":{"arguments":[{"id":2500,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"15408:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2501,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2490,"src":"15419:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2502,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2492,"src":"15427:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2503,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2494,"src":"15441:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"15453:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"15453:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2499,"name":"issueVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2710,"src":"15397:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address)"}},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15397:67:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2507,"nodeType":"ExpressionStatement","src":"15397:67:7"}]},"documentation":{"id":2486,"nodeType":"StructuredDocumentation","src":"14879:390:7","text":"Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\\n@param  _investor       address of investor\\n@param  _token          address of token invested in VITTA\\n@param  _tokenAmount    amount of token invested in VITTA\\n@param  _LPToIssue      amount of VITTA to issue to investor "},"functionSelector":"ccc241c6","id":2509,"implemented":true,"kind":"function","modifiers":[{"id":2497,"modifierName":{"id":2496,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"15376:9:7"},"nodeType":"ModifierInvocation","src":"15376:9:7"}],"name":"issue","nodeType":"FunctionDefinition","parameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2488,"mutability":"mutable","name":"_investor","nodeType":"VariableDeclaration","scope":2509,"src":"15290:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2487,"name":"address","nodeType":"ElementaryTypeName","src":"15290:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2490,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2509,"src":"15309:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2489,"name":"address","nodeType":"ElementaryTypeName","src":"15309:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2492,"mutability":"mutable","name":"_tokenAmount","nodeType":"VariableDeclaration","scope":2509,"src":"15325:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2491,"name":"uint256","nodeType":"ElementaryTypeName","src":"15325:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2494,"mutability":"mutable","name":"_LPToIssue","nodeType":"VariableDeclaration","scope":2509,"src":"15347:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2493,"name":"uint256","nodeType":"ElementaryTypeName","src":"15347:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15289:77:7"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[],"src":"15386:0:7"},"scope":3398,"src":"15275:197:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2709,"nodeType":"Block","src":"15606:1686:7","statements":[{"expression":{"arguments":[{"id":2526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15625:14:7","subExpression":{"baseExpression":{"id":2523,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"15626:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2525,"indexExpression":{"hexValue":"6973737565","id":2524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15631:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a33d0fabbfddf3db8e1458550edc0ab7e061990c85809d25341eab0885973d7d","typeString":"literal_string \\"issue\\""},"value":"issue"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15626:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e742072656e656e7472616e6379","id":2527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15641:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""},"value":"Locked to prevent renentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""}],"id":2522,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15617:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15617:56:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2529,"nodeType":"ExpressionStatement","src":"15617:56:7"},{"expression":{"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2530,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"15684:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2532,"indexExpression":{"hexValue":"6973737565","id":2531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15689:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a33d0fabbfddf3db8e1458550edc0ab7e061990c85809d25341eab0885973d7d","typeString":"literal_string \\"issue\\""},"value":"issue"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15684:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15700:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15684:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2535,"nodeType":"ExpressionStatement","src":"15684:20:7"},{"expression":{"id":2552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2536,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"15715:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2539,"indexExpression":{"id":2537,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"15725:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15715:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2540,"indexExpression":{"id":2538,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"15736:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15715:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"15715:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2544,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"15771:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2546,"indexExpression":{"id":2545,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"15781:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15771:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2548,"indexExpression":{"id":2547,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"15792:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15771:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"15771:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2550,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"15813:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2542,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"15758:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"15758:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15758:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15715:111:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2553,"nodeType":"ExpressionStatement","src":"15715:111:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2554,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"15925:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2555,"name":"investmentCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"15938:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15925:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2557,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15924:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2558,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"15957:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2562,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"15990:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2561,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"15983:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15983:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":750,"src":"15983:25:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":2565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15983:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2566,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"16012:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2559,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"15970:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"15970:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15970:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15957:67:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15956:69:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15924:101:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2701,"nodeType":"Block","src":"16416:829:7","statements":[{"expression":{"arguments":[{"id":2609,"name":"_issuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"16458:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2610,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16467:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2611,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16478:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2606,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"16438:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2605,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"16431:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16431:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":800,"src":"16431:26:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16431:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2613,"nodeType":"ExpressionStatement","src":"16431:58:7"},{"expression":{"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2614,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"16506:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2617,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"16533:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2618,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16546:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2615,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"16520:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"16520:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16520:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16506:51:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2621,"nodeType":"ExpressionStatement","src":"16506:51:7"},{"expression":{"id":2632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2622,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"16576:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2624,"indexExpression":{"id":2623,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16583:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16576:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":2627,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"16609:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2629,"indexExpression":{"id":2628,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16616:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16609:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2630,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16628:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2625,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"16596:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"16596:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16596:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16576:63:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2633,"nodeType":"ExpressionStatement","src":"16576:63:7"},{"eventCall":{"arguments":[{"id":2635,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16671:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"baseExpression":{"id":2636,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16682:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2638,"indexExpression":{"id":2637,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16692:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16682:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2640,"indexExpression":{"id":2639,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16703:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16682:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16682:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2642,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"16725:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2643,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16739:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2634,"name":"IssuedVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1368,"src":"16659:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16659:91:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2645,"nodeType":"EmitStatement","src":"16654:96:7"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2646,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16768:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2648,"indexExpression":{"id":2647,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16778:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16768:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2650,"indexExpression":{"id":2649,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16789:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16768:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16768:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":2654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16819:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16811:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2652,"name":"address","nodeType":"ElementaryTypeName","src":"16811:7:7","typeDescriptions":{}}},"id":2655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16811:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16768:55:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"arguments":[{"id":2695,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"17203:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2696,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"17217:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2693,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"17184:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"17184:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17184:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2690,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"17165:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17157:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2688,"name":"address","nodeType":"ElementaryTypeName","src":"17157:8:7","stateMutability":"payable","typeDescriptions":{}}},"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17157:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","src":"17157:26:7","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17157:76:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2699,"nodeType":"ExpressionStatement","src":"17157:76:7"},"id":2700,"nodeType":"IfStatement","src":"16765:468:7","trueBody":{"expression":{"arguments":[{"id":2666,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"16957:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"arguments":[{"id":2671,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"17010:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2674,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"17053:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2673,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"17046:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17046:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":2672,"name":"_computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"17024:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC20_$819_$returns$_t_uint256_$","typeString":"function (contract IERC20) view returns (uint256)"}},"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17024:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2670,"name":"_upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"17001:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17001:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2678,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"17064:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2668,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"16982:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"16982:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16982:97:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2682,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"17110:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2681,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"17103:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17103:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":2680,"name":"_computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"17081:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC20_$819_$returns$_t_uint256_$","typeString":"function (contract IERC20) view returns (uint256)"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17081:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2667,"name":"_downscaleDown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3380,"src":"16967:14:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16967:152:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2658,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16905:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2660,"indexExpression":{"id":2659,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16915:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16905:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2662,"indexExpression":{"id":2661,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16926:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16905:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16905:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2657,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"16898:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16898:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"16898:58:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16898:222:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2687,"nodeType":"ExpressionStatement","src":"16898:222:7"}}]},"id":2702,"nodeType":"IfStatement","src":"15921:1324:7","trueBody":{"id":2604,"nodeType":"Block","src":"16026:265:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2571,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16044:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2573,"indexExpression":{"id":2572,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16054:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16044:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2575,"indexExpression":{"id":2574,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16065:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16044:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16044:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":2579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16095:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16087:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2577,"name":"address","nodeType":"ElementaryTypeName","src":"16087:7:7","typeDescriptions":{}}},"id":2580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16087:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16044:55:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"id":2600,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"16266:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2597,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16246:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16238:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2595,"name":"address","nodeType":"ElementaryTypeName","src":"16238:8:7","stateMutability":"payable","typeDescriptions":{}}},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16238:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","src":"16238:27:7","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16238:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2602,"nodeType":"ExpressionStatement","src":"16238:41:7"},"id":2603,"nodeType":"IfStatement","src":"16041:238:7","trueBody":{"expression":{"arguments":[{"id":2591,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16177:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2592,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"16188:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2583,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16125:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2585,"indexExpression":{"id":2584,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16135:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16125:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2587,"indexExpression":{"id":2586,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16146:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16125:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16125:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2582,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"16118:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16118:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"16118:58:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16118:83:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2594,"nodeType":"ExpressionStatement","src":"16118:83:7"}}]}},{"expression":{"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2703,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"17263:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2705,"indexExpression":{"hexValue":"6973737565","id":2704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17268:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a33d0fabbfddf3db8e1458550edc0ab7e061990c85809d25341eab0885973d7d","typeString":"literal_string \\"issue\\""},"value":"issue"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17263:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17279:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17263:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2708,"nodeType":"ExpressionStatement","src":"17263:21:7"}]},"id":2710,"implemented":true,"kind":"function","modifiers":[],"name":"issueVitta","nodeType":"FunctionDefinition","parameters":{"id":2520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2511,"mutability":"mutable","name":"_investor","nodeType":"VariableDeclaration","scope":2710,"src":"15504:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2510,"name":"address","nodeType":"ElementaryTypeName","src":"15504:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2513,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2710,"src":"15523:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2512,"name":"address","nodeType":"ElementaryTypeName","src":"15523:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2515,"mutability":"mutable","name":"_tokenAmount","nodeType":"VariableDeclaration","scope":2710,"src":"15539:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2514,"name":"uint256","nodeType":"ElementaryTypeName","src":"15539:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2517,"mutability":"mutable","name":"_LPToIssue","nodeType":"VariableDeclaration","scope":2710,"src":"15561:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2516,"name":"uint256","nodeType":"ElementaryTypeName","src":"15561:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2519,"mutability":"mutable","name":"_issuer","nodeType":"VariableDeclaration","scope":2710,"src":"15581:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2518,"name":"address","nodeType":"ElementaryTypeName","src":"15581:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15503:94:7"},"returnParameters":{"id":2521,"nodeType":"ParameterList","parameters":[],"src":"15606:0:7"},"scope":3398,"src":"15484:1808:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2852,"nodeType":"Block","src":"17978:1066:7","statements":[{"expression":{"arguments":[{"id":2730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17997:18:7","subExpression":{"baseExpression":{"id":2727,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"17998:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2729,"indexExpression":{"hexValue":"6c6971756964697479","id":2728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18003:11:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7d9f8cddc6f064ba72d0e3c1e53eb67867dd8506fa4f5d61c86189caca8ee5","typeString":"literal_string \\"liquidity\\""},"value":"liquidity"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17998:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e74207265656e7472616e6379","id":2731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18017:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""},"value":"Locked to prevent reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""}],"id":2726,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17989:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17989:59:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2733,"nodeType":"ExpressionStatement","src":"17989:59:7"},{"expression":{"id":2738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2734,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"18059:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2736,"indexExpression":{"hexValue":"6c6971756964697479","id":2735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18064:11:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7d9f8cddc6f064ba72d0e3c1e53eb67867dd8506fa4f5d61c86189caca8ee5","typeString":"literal_string \\"liquidity\\""},"value":"liquidity"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18059:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18079:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18059:24:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2739,"nodeType":"ExpressionStatement","src":"18059:24:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2741,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"18102:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18102:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18114:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"18102:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18121:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18094:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18094:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2747,"nodeType":"ExpressionStatement","src":"18094:54:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":2749,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"18167:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2751,"indexExpression":{"id":2750,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18180:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18167:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2753,"indexExpression":{"id":2752,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18191:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18167:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18202:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18167:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d616e6167657220646f6573206e6f74206578697374","id":2756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18205:24:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4","typeString":"literal_string \\"Manager does not exist\\""},"value":"Manager does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4","typeString":"literal_string \\"Manager does not exist\\""}],"id":2748,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18159:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18159:71:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2758,"nodeType":"ExpressionStatement","src":"18159:71:7"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2759,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18306:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":2762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18322:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18314:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2760,"name":"address","nodeType":"ElementaryTypeName","src":"18314:7:7","typeDescriptions":{}}},"id":2763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18314:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18306:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"arguments":[{"id":2779,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18473:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2776,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18457:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18449:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2774,"name":"address","nodeType":"ElementaryTypeName","src":"18449:8:7","stateMutability":"payable","typeDescriptions":{}}},"id":2777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18449:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"send","nodeType":"MemberAccess","src":"18449:23:7","typeDescriptions":{"typeIdentifier":"t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18449:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":2781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18488:17:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \\"Transfer failed\\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \\"Transfer failed\\""}],"id":2773,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18441:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18441:65:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2783,"nodeType":"ExpressionStatement","src":"18441:65:7"},"id":2784,"nodeType":"IfStatement","src":"18303:203:7","trueBody":{"expression":{"arguments":[{"id":2769,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18377:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2770,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18388:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2766,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18360:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2765,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"18353:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18353:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"18353:23:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18353:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2772,"nodeType":"ExpressionStatement","src":"18353:48:7"}},{"expression":{"arguments":[{"id":2789,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18551:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2790,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18565:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2791,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18573:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":2786,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18534:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2785,"name":"IMarketMaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3998,"src":"18521:12:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMarketMaker_$3998_$","typeString":"type(contract IMarketMaker)"}},"id":2787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18521:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMarketMaker_$3998","typeString":"contract IMarketMaker"}},"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":3974,"src":"18521:29:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address) external"}},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18521:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2793,"nodeType":"ExpressionStatement","src":"18521:61:7"},{"eventCall":{"arguments":[{"id":2795,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18616:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2796,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18627:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2797,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"18637:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2798,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18649:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2799,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18657:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2794,"name":"PlatformLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"18598:17:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,address,uint256)"}},"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18598:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2801,"nodeType":"EmitStatement","src":"18593:77:7"},{"expression":{"id":2814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":2802,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"18681:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2804,"indexExpression":{"id":2803,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18693:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18681:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18681:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":2808,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"18737:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2810,"indexExpression":{"id":2809,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18749:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18737:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18737:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2812,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"18779:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2806,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"18724:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"18724:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18724:66:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18681:109:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2815,"nodeType":"ExpressionStatement","src":"18681:109:7"},{"assignments":[2817],"declarations":[{"constant":false,"id":2817,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":2852,"src":"18801:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2816,"name":"uint256","nodeType":"ElementaryTypeName","src":"18801:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2823,"initialValue":{"baseExpression":{"baseExpression":{"id":2818,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"18817:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2820,"indexExpression":{"id":2819,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18830:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18817:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2822,"indexExpression":{"id":2821,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18841:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18817:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18801:49:7"},{"expression":{"id":2844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2824,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"18861:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2828,"indexExpression":{"id":2825,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18872:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18861:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2829,"indexExpression":{"id":2826,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18883:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18861:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2830,"indexExpression":{"id":2827,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2817,"src":"18891:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18861:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18861:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2834,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"18931:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2836,"indexExpression":{"id":2835,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18942:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18931:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2838,"indexExpression":{"id":2837,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18953:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18931:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2840,"indexExpression":{"id":2839,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2817,"src":"18961:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18931:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18931:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2842,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18987:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2832,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"18918:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"18918:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18918:82:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18861:139:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2845,"nodeType":"ExpressionStatement","src":"18861:139:7"},{"expression":{"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2846,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"19011:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2848,"indexExpression":{"hexValue":"6c6971756964697479","id":2847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19016:11:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7d9f8cddc6f064ba72d0e3c1e53eb67867dd8506fa4f5d61c86189caca8ee5","typeString":"literal_string \\"liquidity\\""},"value":"liquidity"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19011:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19031:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"19011:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2851,"nodeType":"ExpressionStatement","src":"19011:25:7"}]},"documentation":{"id":2711,"nodeType":"StructuredDocumentation","src":"17304:524:7","text":"Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \\n@param  _platform   address of platform on which liquidity has to be provided\\n@param  _manager    address of asset manager to whom liquidity has to be provided\\n@param  _liquidity  amount of VITTA tokens to allot to an asset manager\\n@param  _token      address of token allotted to asset manager\\n@param  _tokenAmount    amount of token allotted to asset manager"},"functionSelector":"cb7c4c55","id":2853,"implemented":true,"kind":"function","modifiers":[{"id":2724,"modifierName":{"id":2723,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"17968:9:7"},"nodeType":"ModifierInvocation","src":"17968:9:7"}],"name":"provideLiquidity","nodeType":"FunctionDefinition","parameters":{"id":2722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2713,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":2853,"src":"17864:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2712,"name":"address","nodeType":"ElementaryTypeName","src":"17864:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2715,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":2853,"src":"17883:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2714,"name":"address","nodeType":"ElementaryTypeName","src":"17883:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2717,"mutability":"mutable","name":"_liquidity","nodeType":"VariableDeclaration","scope":2853,"src":"17901:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2716,"name":"uint256","nodeType":"ElementaryTypeName","src":"17901:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2719,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2853,"src":"17921:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2718,"name":"address","nodeType":"ElementaryTypeName","src":"17921:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2721,"mutability":"mutable","name":"_tokenAmount","nodeType":"VariableDeclaration","scope":2853,"src":"17937:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2720,"name":"uint256","nodeType":"ElementaryTypeName","src":"17937:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17863:95:7"},"returnParameters":{"id":2725,"nodeType":"ParameterList","parameters":[],"src":"17978:0:7"},"scope":3398,"src":"17838:1206:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2960,"nodeType":"Block","src":"19543:719:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2864,"name":"platformIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"19562:13:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2867,"indexExpression":{"expression":{"id":2865,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"19576:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19576:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19562:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19588:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19562:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c697175696469747920706f6f6c20646f6573206e6f74206578697374","id":2870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19591:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7488aed9efb581ec025bbf34f5cf87ffa2431375dd8982219b303742d3d79ce","typeString":"literal_string \\"Liquidity pool does not exist\\""},"value":"Liquidity pool does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a7488aed9efb581ec025bbf34f5cf87ffa2431375dd8982219b303742d3d79ce","typeString":"literal_string \\"Liquidity pool does not exist\\""}],"id":2863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19554:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19554:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2872,"nodeType":"ExpressionStatement","src":"19554:69:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2874,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"19642:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2876,"indexExpression":{"id":2875,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"19653:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19642:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19661:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19642:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e737570706f7274656420746f6b656e","id":2879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19664:19:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_35557054842e6bac2d5677ccc2aeb32b43981809d9c333559406d70b18885a3e","typeString":"literal_string \\"Unsupported token\\""},"value":"Unsupported token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_35557054842e6bac2d5677ccc2aeb32b43981809d9c333559406d70b18885a3e","typeString":"literal_string \\"Unsupported token\\""}],"id":2873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19634:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19634:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2881,"nodeType":"ExpressionStatement","src":"19634:50:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2883,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"19703:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19703:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19715:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"19703:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19722:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19695:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19695:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2889,"nodeType":"ExpressionStatement","src":"19695:54:7"},{"expression":{"arguments":[{"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19768:19:7","subExpression":{"baseExpression":{"id":2891,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"19769:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2893,"indexExpression":{"hexValue":"64697374726962757465","id":2892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19774:12:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_67f5ee3ea5f89bb62c6dbf9e6a46fac86b15fc7c224cb0f88a13f89aeded9e1f","typeString":"literal_string \\"distribute\\""},"value":"distribute"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19769:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e74207265656e7472616e6379","id":2895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19789:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""},"value":"Locked to prevent reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""}],"id":2890,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19760:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19760:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2897,"nodeType":"ExpressionStatement","src":"19760:60:7"},{"expression":{"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2898,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"19831:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2900,"indexExpression":{"hexValue":"64697374726962757465","id":2899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19836:12:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_67f5ee3ea5f89bb62c6dbf9e6a46fac86b15fc7c224cb0f88a13f89aeded9e1f","typeString":"literal_string \\"distribute\\""},"value":"distribute"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19831:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19852:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19831:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2903,"nodeType":"ExpressionStatement","src":"19831:25:7"},{"assignments":[2905],"declarations":[{"constant":false,"id":2905,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":2960,"src":"19867:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2904,"name":"uint256","nodeType":"ElementaryTypeName","src":"19867:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2912,"initialValue":{"baseExpression":{"baseExpression":{"id":2906,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"19883:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2909,"indexExpression":{"expression":{"id":2907,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"19896:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19896:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19883:24:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2911,"indexExpression":{"id":2910,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"19908:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19883:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19867:50:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2913,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"19931:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19944:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19931:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2916,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"19949:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19956:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19949:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19931:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2953,"nodeType":"IfStatement","src":"19928:290:7","trueBody":{"id":2952,"nodeType":"Block","src":"19958:260:7","statements":[{"expression":{"id":2942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2920,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"19985:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2925,"indexExpression":{"expression":{"id":2921,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"19996:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19996:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19985:22:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2926,"indexExpression":{"id":2923,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"20008:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19985:30:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2927,"indexExpression":{"id":2924,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"20016:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19985:37:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"19985:55:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2931,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"20056:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2934,"indexExpression":{"expression":{"id":2932,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"20067:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20067:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20056:22:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2936,"indexExpression":{"id":2935,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"20079:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20056:30:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2938,"indexExpression":{"id":2937,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"20087:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20056:37:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"20056:55:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2940,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"20113:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2929,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"20043:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"20043:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20043:84:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19985:142:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2943,"nodeType":"ExpressionStatement","src":"19985:142:7"},{"eventCall":{"arguments":[{"expression":{"id":2945,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"20162:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20162:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2947,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"20174:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2948,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"20184:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2949,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"20192:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2944,"name":"ManagerReturns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"20147:14:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20147:59:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2951,"nodeType":"EmitStatement","src":"20142:64:7"}]}},{"expression":{"id":2958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2954,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"20228:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2956,"indexExpression":{"hexValue":"64697374726962757465","id":2955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20233:12:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_67f5ee3ea5f89bb62c6dbf9e6a46fac86b15fc7c224cb0f88a13f89aeded9e1f","typeString":"literal_string \\"distribute\\""},"value":"distribute"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20228:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20249:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"20228:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2959,"nodeType":"ExpressionStatement","src":"20228:26:7"}]},"documentation":{"id":2854,"nodeType":"StructuredDocumentation","src":"19052:399:7","text":"Pay out of income by Market maker contracts to VITTA Liquidity providers\\n@param  _distribution   amount of VITTA to mint and distribute pro rata to liquidity providers\\n@param  _token          address of token in which distribution is made by market maker    \\n@param  _manager        address of asset manager earning the paid out return on investment "},"functionSelector":"451353f1","id":2961,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nodeType":"FunctionDefinition","parameters":{"id":2861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2856,"mutability":"mutable","name":"_distribution","nodeType":"VariableDeclaration","scope":2961,"src":"19477:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2855,"name":"uint256","nodeType":"ElementaryTypeName","src":"19477:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2858,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2961,"src":"19500:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2857,"name":"address","nodeType":"ElementaryTypeName","src":"19500:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2860,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":2961,"src":"19516:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2859,"name":"address","nodeType":"ElementaryTypeName","src":"19516:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19476:57:7"},"returnParameters":{"id":2862,"nodeType":"ParameterList","parameters":[],"src":"19543:0:7"},"scope":3398,"src":"19457:805:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2983,"nodeType":"Block","src":"20649:198:7","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"id":2973,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"20756:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2975,"indexExpression":{"id":2974,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2964,"src":"20768:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20756:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"20756:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":2977,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"20798:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2979,"indexExpression":{"id":2978,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2964,"src":"20810:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20798:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"20798:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2981,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20755:84:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":2972,"id":2982,"nodeType":"Return","src":"20748:91:7"}]},"documentation":{"id":2962,"nodeType":"StructuredDocumentation","src":"20270:132:7","text":"Fetches performance of market platform platform\\n@param  _platform   address of market making platform"},"functionSelector":"24ef84ec","id":2984,"implemented":true,"kind":"function","modifiers":[{"id":2967,"modifierName":{"id":2966,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"20473:9:7"},"nodeType":"ModifierInvocation","src":"20473:9:7"}],"name":"getPlatformPerformance","nodeType":"FunctionDefinition","parameters":{"id":2965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2964,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":2984,"src":"20440:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2963,"name":"address","nodeType":"ElementaryTypeName","src":"20440:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20439:19:7"},"returnParameters":{"id":2972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2969,"mutability":"mutable","name":"platformLiquidityProvided","nodeType":"VariableDeclaration","scope":2984,"src":"20491:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2968,"name":"uint256","nodeType":"ElementaryTypeName","src":"20491:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2971,"mutability":"mutable","name":"platformCommissionsEarned","nodeType":"VariableDeclaration","scope":2984,"src":"20615:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2970,"name":"uint256","nodeType":"ElementaryTypeName","src":"20615:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20490:159:7"},"scope":3398,"src":"20408:439:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3026,"nodeType":"Block","src":"21349:278:7","statements":[{"assignments":[3001],"declarations":[{"constant":false,"id":3001,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":3026,"src":"21360:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3000,"name":"uint256","nodeType":"ElementaryTypeName","src":"21360:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3007,"initialValue":{"baseExpression":{"baseExpression":{"id":3002,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"21376:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3004,"indexExpression":{"id":3003,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"21389:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21376:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3006,"indexExpression":{"id":3005,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2991,"src":"21400:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21376:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21360:49:7"},{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":3008,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"21508:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":3010,"indexExpression":{"id":3009,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"21519:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21508:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":3012,"indexExpression":{"id":3011,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2989,"src":"21530:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21508:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":3014,"indexExpression":{"id":3013,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"21538:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21508:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"21508:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":3016,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"21564:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":3018,"indexExpression":{"id":3017,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"21575:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21564:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":3020,"indexExpression":{"id":3019,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2989,"src":"21586:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21564:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":3022,"indexExpression":{"id":3021,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"21594:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21564:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"21564:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21507:112:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":2999,"id":3025,"nodeType":"Return","src":"21500:119:7"}]},"documentation":{"id":2985,"nodeType":"StructuredDocumentation","src":"20855:220:7","text":"Fetches performance of asset managers\\n@param  _platform   address of platform\\n@param  _token      address of token\\n@param  _manager    address of asset manager on platform"},"functionSelector":"56abb19b","id":3027,"implemented":true,"kind":"function","modifiers":[{"id":2994,"modifierName":{"id":2993,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"21179:9:7"},"nodeType":"ModifierInvocation","src":"21179:9:7"}],"name":"getManagerPerformance","nodeType":"FunctionDefinition","parameters":{"id":2992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2987,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":3027,"src":"21112:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2986,"name":"address","nodeType":"ElementaryTypeName","src":"21112:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2989,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":3027,"src":"21131:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2988,"name":"address","nodeType":"ElementaryTypeName","src":"21131:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2991,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":3027,"src":"21147:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2990,"name":"address","nodeType":"ElementaryTypeName","src":"21147:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21111:53:7"},"returnParameters":{"id":2999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2996,"mutability":"mutable","name":"managerLiquidityProvided","nodeType":"VariableDeclaration","scope":3027,"src":"21197:32:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2995,"name":"uint256","nodeType":"ElementaryTypeName","src":"21197:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2998,"mutability":"mutable","name":"managerCommissionsEarned","nodeType":"VariableDeclaration","scope":3027,"src":"21316:32:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2997,"name":"uint256","nodeType":"ElementaryTypeName","src":"21316:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21196:153:7"},"scope":3398,"src":"21081:546:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3170,"nodeType":"Block","src":"22013:936:7","statements":[{"expression":{"arguments":[{"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22032:15:7","subExpression":{"baseExpression":{"id":3038,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"22033:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3040,"indexExpression":{"hexValue":"7061796f7574","id":3039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22038:8:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d97eead40bf4be1ae9c53f578e0af8ec49bd23127c8790825f86522d1d35f1a3","typeString":"literal_string \\"payout\\""},"value":"payout"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22033:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e742072656e656e7472616e6379","id":3042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22049:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""},"value":"Locked to prevent renentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""}],"id":3037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"22024:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22024:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3044,"nodeType":"ExpressionStatement","src":"22024:57:7"},{"expression":{"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3045,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"22092:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3047,"indexExpression":{"hexValue":"7061796f7574","id":3046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22097:8:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d97eead40bf4be1ae9c53f578e0af8ec49bd23127c8790825f86522d1d35f1a3","typeString":"literal_string \\"payout\\""},"value":"payout"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22092:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22109:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"22092:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3050,"nodeType":"ExpressionStatement","src":"22092:21:7"},{"expression":{"arguments":[{"arguments":[{"id":3057,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"22151:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}],"id":3056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22143:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3055,"name":"address","nodeType":"ElementaryTypeName","src":"22143:7:7","typeDescriptions":{}}},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22143:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3059,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22158:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3052,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22131:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3051,"name":"IVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4008,"src":"22124:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVitta_$4008_$","typeString":"type(contract IVitta)"}},"id":3053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22124:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVitta_$4008","typeString":"contract IVitta"}},"id":3054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":4007,"src":"22124:18:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":3060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22124:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3061,"nodeType":"ExpressionStatement","src":"22124:48:7"},{"expression":{"id":3074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":3062,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"22183:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":3064,"indexExpression":{"id":3063,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22195:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22183:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"22183:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":3068,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"22239:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":3070,"indexExpression":{"id":3069,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22251:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22239:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"22239:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3072,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22281:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3066,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"22226:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"22226:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22226:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22183:112:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3075,"nodeType":"ExpressionStatement","src":"22183:112:7"},{"eventCall":{"arguments":[{"id":3077,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22327:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3078,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22338:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3079,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22345:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3076,"name":"PlatformReturns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1398,"src":"22311:15:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22311:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3081,"nodeType":"EmitStatement","src":"22306:53:7"},{"assignments":[3083],"declarations":[{"constant":false,"id":3083,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":3170,"src":"22370:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3082,"name":"uint","nodeType":"ElementaryTypeName","src":"22370:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3086,"initialValue":{"expression":{"id":3084,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22384:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22384:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22370:24:7"},{"assignments":[3088],"declarations":[{"constant":false,"id":3088,"mutability":"mutable","name":"issued","nodeType":"VariableDeclaration","scope":3170,"src":"22405:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3087,"name":"uint","nodeType":"ElementaryTypeName","src":"22405:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3090,"initialValue":{"id":3089,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"22419:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22405:25:7"},{"body":{"id":3162,"nodeType":"Block","src":"22469:440:7","statements":[{"assignments":[3102],"declarations":[{"constant":false,"id":3102,"mutability":"mutable","name":"prorataStake","nodeType":"VariableDeclaration","scope":3162,"src":"22484:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3101,"name":"uint256","nodeType":"ElementaryTypeName","src":"22484:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3116,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"id":3107,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"22545:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3111,"indexExpression":{"baseExpression":{"id":3108,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22552:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3110,"indexExpression":{"id":3109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22556:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22552:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22545:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3112,"name":"issued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3088,"src":"22561:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3105,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"22526:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"divDown","nodeType":"MemberAccess","referencedDeclaration":4767,"src":"22526:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22526:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3114,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22570:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3103,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"22507:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"22507:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22507:77:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22484:100:7"},{"expression":{"arguments":[{"baseExpression":{"id":3121,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22622:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3123,"indexExpression":{"id":3122,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22626:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22622:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3124,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22630:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3118,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22606:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3117,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"22599:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":3119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22599:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":3120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"22599:22:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":3125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22599:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3126,"nodeType":"ExpressionStatement","src":"22599:44:7"},{"eventCall":{"arguments":[{"id":3128,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22682:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":3129,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22693:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3131,"indexExpression":{"id":3130,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22697:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22693:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3132,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22701:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3133,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22708:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3134,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"22722:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22722:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3127,"name":"InvestorReturns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1410,"src":"22666:15:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22666:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3137,"nodeType":"EmitStatement","src":"22661:77:7"},{"expression":{"id":3144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3138,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"22753:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3141,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"22780:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3142,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22793:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3139,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"22767:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"22767:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22767:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22753:53:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3145,"nodeType":"ExpressionStatement","src":"22753:53:7"},{"expression":{"id":3160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3146,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"22825:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3150,"indexExpression":{"baseExpression":{"id":3147,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22832:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3149,"indexExpression":{"id":3148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22836:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22832:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22825:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3153,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"22855:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3157,"indexExpression":{"baseExpression":{"id":3154,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22862:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3156,"indexExpression":{"id":3155,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22866:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22862:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22855:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3158,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22871:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3151,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"22842:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"22842:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22842:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22825:59:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3161,"nodeType":"ExpressionStatement","src":"22825:59:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22455:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3096,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"22457:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22455:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3163,"initializationExpression":{"assignments":[3092],"declarations":[{"constant":false,"id":3092,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":3163,"src":"22445:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3091,"name":"uint","nodeType":"ElementaryTypeName","src":"22445:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3094,"initialValue":{"hexValue":"30","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22452:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22445:8:7"},"loopExpression":{"expression":{"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22465:3:7","subExpression":{"id":3098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22465:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3100,"nodeType":"ExpressionStatement","src":"22465:3:7"},"nodeType":"ForStatement","src":"22441:468:7"},{"expression":{"id":3168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3164,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"22919:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3166,"indexExpression":{"hexValue":"7061796f7574","id":3165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22924:8:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d97eead40bf4be1ae9c53f578e0af8ec49bd23127c8790825f86522d1d35f1a3","typeString":"literal_string \\"payout\\""},"value":"payout"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22919:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22936:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"22919:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3169,"nodeType":"ExpressionStatement","src":"22919:22:7"}]},"documentation":{"id":3028,"nodeType":"StructuredDocumentation","src":"21639:291:7","text":"Pay out income to VITTA Liquidity providers\\n@param  _distribution   amount of VITTA to mint and distribute pro rata to liquidity providers   \\n@param  _platform       address of platform on which commission is earned based on which distribution is made"},"functionSelector":"05061616","id":3171,"implemented":true,"kind":"function","modifiers":[{"id":3035,"modifierName":{"id":3034,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"21994:9:7"},"nodeType":"ModifierInvocation","src":"21994:9:7"}],"name":"payOut","nodeType":"FunctionDefinition","parameters":{"id":3033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3030,"mutability":"mutable","name":"_distribution","nodeType":"VariableDeclaration","scope":3171,"src":"21952:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3029,"name":"uint256","nodeType":"ElementaryTypeName","src":"21952:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3032,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":3171,"src":"21975:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3031,"name":"address","nodeType":"ElementaryTypeName","src":"21975:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21951:42:7"},"returnParameters":{"id":3036,"nodeType":"ParameterList","parameters":[],"src":"22013:0:7"},"scope":3398,"src":"21936:1013:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3185,"nodeType":"Block","src":"23038:59:7","statements":[{"expression":{"arguments":[{"id":3182,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"23080:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":3179,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"23063:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3178,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"23056:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23056:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":3181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":758,"src":"23056:23:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23056:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3177,"id":3184,"nodeType":"Return","src":"23049:40:7"}]},"functionSelector":"e3d670d7","id":3186,"implemented":true,"kind":"function","modifiers":[],"name":"balance","nodeType":"FunctionDefinition","parameters":{"id":3174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3173,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":3186,"src":"22974:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3172,"name":"address","nodeType":"ElementaryTypeName","src":"22974:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22973:18:7"},"returnParameters":{"id":3177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3176,"mutability":"mutable","name":"investorBalance","nodeType":"VariableDeclaration","scope":3186,"src":"23014:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3175,"name":"uint256","nodeType":"ElementaryTypeName","src":"23014:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23013:25:7"},"scope":3398,"src":"22957:140:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3241,"nodeType":"Block","src":"23407:302:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3197,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"23426:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"23426:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3199,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"23438:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23426:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a65642073656e646572","id":3201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23445:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1e59d7b97f0680349c22289f1e4dd68175c3de2e3155f54bf05a002152968c5","typeString":"literal_string \\"Unauthorized sender\\""},"value":"Unauthorized sender"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1e59d7b97f0680349c22289f1e4dd68175c3de2e3155f54bf05a002152968c5","typeString":"literal_string \\"Unauthorized sender\\""}],"id":3196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23418:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23418:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3203,"nodeType":"ExpressionStatement","src":"23418:49:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3205,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23486:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3207,"indexExpression":{"id":3206,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3189,"src":"23493:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23486:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"23502:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23486:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e742062616c616e6365","id":3210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23510:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \\"Insufficient balance\\""},"value":"Insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \\"Insufficient balance\\""}],"id":3204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23478:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23478:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3212,"nodeType":"ExpressionStatement","src":"23478:55:7"},{"expression":{"arguments":[{"id":3214,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"23557:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3213,"name":"saveInvestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2041,"src":"23544:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23544:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3216,"nodeType":"ExpressionStatement","src":"23544:23:7"},{"expression":{"id":3227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3217,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23578:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3219,"indexExpression":{"id":3218,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"23585:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23578:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3222,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23611:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3224,"indexExpression":{"id":3223,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"23618:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23611:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3225,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"23630:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3220,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"23598:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"23598:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23598:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23578:59:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3228,"nodeType":"ExpressionStatement","src":"23578:59:7"},{"expression":{"id":3239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3229,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23648:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3231,"indexExpression":{"id":3230,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3189,"src":"23655:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23648:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3234,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23678:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3236,"indexExpression":{"id":3235,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3189,"src":"23685:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23678:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3237,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"23694:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3232,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"23665:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"23665:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23665:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23648:53:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3240,"nodeType":"ExpressionStatement","src":"23648:53:7"}]},"documentation":{"id":3187,"nodeType":"StructuredDocumentation","src":"23105:218:7","text":"Adjust stakes for every transfer of Vitta\\n@param  sender      transferor of Vitta\\n@param  recipient   transferee of vitta\\n@param  amount      amount of vitta transferred"},"functionSelector":"beabacc8","id":3242,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":3194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3189,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":3242,"src":"23347:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3188,"name":"address","nodeType":"ElementaryTypeName","src":"23347:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3191,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":3242,"src":"23363:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3190,"name":"address","nodeType":"ElementaryTypeName","src":"23363:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3193,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":3242,"src":"23382:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3192,"name":"uint256","nodeType":"ElementaryTypeName","src":"23382:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23346:51:7"},"returnParameters":{"id":3195,"nodeType":"ParameterList","parameters":[],"src":"23407:0:7"},"scope":3398,"src":"23329:380:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3251,"nodeType":"Block","src":"23799:27:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3248,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"23810:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23810:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3250,"nodeType":"ExpressionStatement","src":"23810:8:7"}]},"documentation":{"id":3243,"nodeType":"StructuredDocumentation","src":"23717:42:7","text":"Pauses this contract"},"functionSelector":"8456cb59","id":3252,"implemented":true,"kind":"function","modifiers":[{"id":3246,"modifierName":{"id":3245,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"23789:9:7"},"nodeType":"ModifierInvocation","src":"23789:9:7"}],"name":"pause","nodeType":"FunctionDefinition","parameters":{"id":3244,"nodeType":"ParameterList","parameters":[],"src":"23779:2:7"},"returnParameters":{"id":3247,"nodeType":"ParameterList","parameters":[],"src":"23799:0:7"},"scope":3398,"src":"23765:61:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3261,"nodeType":"Block","src":"23924:29:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3258,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":194,"src":"23935:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23935:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3260,"nodeType":"ExpressionStatement","src":"23935:10:7"}]},"documentation":{"id":3253,"nodeType":"StructuredDocumentation","src":"23838:44:7","text":"Unpauses this contract"},"functionSelector":"3f4ba83a","id":3262,"implemented":true,"kind":"function","modifiers":[{"id":3256,"modifierName":{"id":3255,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"23914:9:7"},"nodeType":"ModifierInvocation","src":"23914:9:7"}],"name":"unpause","nodeType":"FunctionDefinition","parameters":{"id":3254,"nodeType":"ParameterList","parameters":[],"src":"23904:2:7"},"returnParameters":{"id":3257,"nodeType":"ParameterList","parameters":[],"src":"23924:0:7"},"scope":3398,"src":"23888:65:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3273,"nodeType":"Block","src":"24014:35:7","statements":[{"expression":{"id":3271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3269,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"24025:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3270,"name":"_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3264,"src":"24034:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24025:16:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3272,"nodeType":"ExpressionStatement","src":"24025:16:7"}]},"functionSelector":"7adbf973","id":3274,"implemented":true,"kind":"function","modifiers":[{"id":3267,"modifierName":{"id":3266,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"24004:9:7"},"nodeType":"ModifierInvocation","src":"24004:9:7"}],"name":"setOracle","nodeType":"FunctionDefinition","parameters":{"id":3265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3264,"mutability":"mutable","name":"_oracle","nodeType":"VariableDeclaration","scope":3274,"src":"23980:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3263,"name":"address","nodeType":"ElementaryTypeName","src":"23980:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23979:17:7"},"returnParameters":{"id":3268,"nodeType":"ParameterList","parameters":[],"src":"24014:0:7"},"scope":3398,"src":"23961:88:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3298,"nodeType":"Block","src":"24145:94:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3285,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"24159:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3287,"indexExpression":{"id":3286,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3276,"src":"24170:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24159:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24177:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24159:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3297,"nodeType":"IfStatement","src":"24156:76:7","trueBody":{"id":3296,"nodeType":"Block","src":"24179:53:7","statements":[{"expression":{"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3290,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"24194:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3292,"indexExpression":{"id":3291,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3276,"src":"24207:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24194:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3293,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3278,"src":"24216:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24194:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3295,"nodeType":"ExpressionStatement","src":"24194:26:7"}]}}]},"functionSelector":"bd5c5420","id":3299,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"24133:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"24133:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3283,"modifierName":{"id":3280,"name":"onlyOracle","nodeType":"IdentifierPath","referencedDeclaration":1307,"src":"24122:10:7"},"nodeType":"ModifierInvocation","src":"24122:22:7"}],"name":"setExchangeRate","nodeType":"FunctionDefinition","parameters":{"id":3279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3276,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":3299,"src":"24086:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3275,"name":"address","nodeType":"ElementaryTypeName","src":"24086:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3278,"mutability":"mutable","name":"rate","nodeType":"VariableDeclaration","scope":3299,"src":"24101:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3277,"name":"uint256","nodeType":"ElementaryTypeName","src":"24101:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24085:29:7"},"returnParameters":{"id":3284,"nodeType":"ParameterList","parameters":[],"src":"24145:0:7"},"scope":3398,"src":"24061:178:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3312,"nodeType":"Block","src":"24321:40:7","statements":[{"expression":{"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3308,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"24332:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3309,"name":"_treasurer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3301,"src":"24343:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24332:21:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3311,"nodeType":"ExpressionStatement","src":"24332:21:7"}]},"functionSelector":"671d6429","id":3313,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3304,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"24310:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"24310:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3306,"modifierName":{"id":3303,"name":"onlyTreasurer","nodeType":"IdentifierPath","referencedDeclaration":1320,"src":"24296:13:7"},"nodeType":"ModifierInvocation","src":"24296:25:7"}],"name":"setTreasurer","nodeType":"FunctionDefinition","parameters":{"id":3302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3301,"mutability":"mutable","name":"_treasurer","nodeType":"VariableDeclaration","scope":3313,"src":"24269:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3300,"name":"address","nodeType":"ElementaryTypeName","src":"24269:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24268:20:7"},"returnParameters":{"id":3307,"nodeType":"ParameterList","parameters":[],"src":"24321:0:7"},"scope":3398,"src":"24247:114:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3326,"nodeType":"Block","src":"24444:42:7","statements":[{"expression":{"id":3324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3322,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"24455:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3323,"name":"_share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3315,"src":"24472:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24455:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3325,"nodeType":"ExpressionStatement","src":"24455:23:7"}]},"functionSelector":"6260f1d8","id":3327,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"24433:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"24433:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3320,"modifierName":{"id":3317,"name":"onlyTreasurer","nodeType":"IdentifierPath","referencedDeclaration":1320,"src":"24419:13:7"},"nodeType":"ModifierInvocation","src":"24419:25:7"}],"name":"setLiquidityShare","nodeType":"FunctionDefinition","parameters":{"id":3316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3315,"mutability":"mutable","name":"_share","nodeType":"VariableDeclaration","scope":3327,"src":"24396:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3314,"name":"uint256","nodeType":"ElementaryTypeName","src":"24396:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24395:16:7"},"returnParameters":{"id":3321,"nodeType":"ParameterList","parameters":[],"src":"24444:0:7"},"scope":3398,"src":"24369:117:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3362,"nodeType":"Block","src":"24737:355:7","statements":[{"assignments":[3337],"declarations":[{"constant":false,"id":3337,"mutability":"mutable","name":"tokenDecimals","nodeType":"VariableDeclaration","scope":3362,"src":"24829:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3336,"name":"uint256","nodeType":"ElementaryTypeName","src":"24829:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3346,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":3341,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3331,"src":"24867:5:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":3340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24859:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3339,"name":"address","nodeType":"ElementaryTypeName","src":"24859:7:7","typeDescriptions":{}}},"id":3342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24859:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3338,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"24853:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$741_$","typeString":"type(contract ERC20)"}},"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24853:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$741","typeString":"contract ERC20"}},"id":3344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":270,"src":"24853:30:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":3345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24853:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"24829:56:7"},{"assignments":[3348],"declarations":[{"constant":false,"id":3348,"mutability":"mutable","name":"decimalsDifference","nodeType":"VariableDeclaration","scope":3362,"src":"24971:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3347,"name":"uint256","nodeType":"ElementaryTypeName","src":"24971:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3354,"initialValue":{"arguments":[{"hexValue":"3138","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25009:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},{"id":3352,"name":"tokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"25013:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3349,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"25000:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6596_$","typeString":"type(library Math)"}},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":6406,"src":"25000:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25000:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24971:56:7"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3355,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25045:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ONE","nodeType":"MemberAccess","referencedDeclaration":4571,"src":"25045:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25062:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3358,"name":"decimalsDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"25066:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25062:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25045:39:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3335,"id":3361,"nodeType":"Return","src":"25038:46:7"}]},"documentation":{"id":3328,"nodeType":"StructuredDocumentation","src":"24494:160:7","text":" @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\\n it had 18 decimals."},"id":3363,"implemented":true,"kind":"function","modifiers":[],"name":"_computeScalingFactor","nodeType":"FunctionDefinition","parameters":{"id":3332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3331,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":3363,"src":"24691:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"},"typeName":{"id":3330,"nodeType":"UserDefinedTypeName","pathNode":{"id":3329,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":819,"src":"24691:6:7"},"referencedDeclaration":819,"src":"24691:6:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"24690:14:7"},"returnParameters":{"id":3335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3334,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3363,"src":"24728:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3333,"name":"uint256","nodeType":"ElementaryTypeName","src":"24728:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24727:9:7"},"scope":3398,"src":"24660:432:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3379,"nodeType":"Block","src":"25397:67:7","statements":[{"expression":{"arguments":[{"id":3375,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3366,"src":"25434:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3376,"name":"scalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"25442:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3373,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25415:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"divDown","nodeType":"MemberAccess","referencedDeclaration":4767,"src":"25415:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25415:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3372,"id":3378,"nodeType":"Return","src":"25408:48:7"}]},"documentation":{"id":3364,"nodeType":"StructuredDocumentation","src":"25100:196:7","text":" @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\\n whether it needed scaling or not. The result is rounded down."},"id":3380,"implemented":true,"kind":"function","modifiers":[],"name":"_downscaleDown","nodeType":"FunctionDefinition","parameters":{"id":3369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3366,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":3380,"src":"25326:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3365,"name":"uint256","nodeType":"ElementaryTypeName","src":"25326:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3368,"mutability":"mutable","name":"scalingFactor","nodeType":"VariableDeclaration","scope":3380,"src":"25342:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3367,"name":"uint256","nodeType":"ElementaryTypeName","src":"25342:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25325:39:7"},"returnParameters":{"id":3372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3371,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3380,"src":"25388:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3370,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25387:9:7"},"scope":3398,"src":"25302:162:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3396,"nodeType":"Block","src":"25721:67:7","statements":[{"expression":{"arguments":[{"id":3392,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3383,"src":"25758:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3393,"name":"scalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3385,"src":"25766:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3390,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25739:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"25739:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25739:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3389,"id":3395,"nodeType":"Return","src":"25732:48:7"}]},"documentation":{"id":3381,"nodeType":"StructuredDocumentation","src":"25472:154:7","text":" @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\\n scaling or not."},"id":3397,"implemented":true,"kind":"function","modifiers":[],"name":"_upscale","nodeType":"FunctionDefinition","parameters":{"id":3386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3383,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":3397,"src":"25650:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3382,"name":"uint256","nodeType":"ElementaryTypeName","src":"25650:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3385,"mutability":"mutable","name":"scalingFactor","nodeType":"VariableDeclaration","scope":3397,"src":"25666:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3384,"name":"uint256","nodeType":"ElementaryTypeName","src":"25666:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25649:39:7"},"returnParameters":{"id":3389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3388,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3397,"src":"25712:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3387,"name":"uint256","nodeType":"ElementaryTypeName","src":"25712:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25711:9:7"},"scope":3398,"src":"25632:156:7","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3399,"src":"600:25197:7"}],"src":"104:25697:7"},"legacyAST":{"absolutePath":"project:/contracts/Liquidity.sol","exportedSymbols":{"Context":[866],"ERC20":[741],"Errors":[4564],"FixedPoint":[4986],"IERC20":[819],"IERC20Metadata":[844],"ILiquidity":[3772],"IMarketMaker":[3998],"IVitta":[4008],"Liquidity":[3398],"LogExpMath":[6284],"Math":[6596],"Ownable":[103],"Pausable":[195],"SafeMath":[1178],"_require":[4026,4045],"_revert":[4057,4077]},"id":3399,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1180,"literals":["solidity","0.8",".0"],"nodeType":"PragmaDirective","src":"104:22:7"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":1181,"nodeType":"ImportDirective","scope":3399,"sourceUnit":104,"src":"130:52:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":1182,"nodeType":"ImportDirective","scope":3399,"sourceUnit":196,"src":"184:55:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":1183,"nodeType":"ImportDirective","scope":3399,"sourceUnit":820,"src":"243:56:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":1184,"nodeType":"ImportDirective","scope":3399,"sourceUnit":742,"src":"301:55:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeMath.sol","file":"@openzeppelin/contracts/utils/math/SafeMath.sol","id":1185,"nodeType":"ImportDirective","scope":3399,"sourceUnit":1179,"src":"360:57:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/interfaces/IMarketMaker.sol","file":"./interfaces/IMarketMaker.sol","id":1186,"nodeType":"ImportDirective","scope":3399,"sourceUnit":3999,"src":"421:39:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/interfaces/ILiquidity.sol","file":"./interfaces/ILiquidity.sol","id":1187,"nodeType":"ImportDirective","scope":3399,"sourceUnit":3773,"src":"462:37:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/interfaces/IVitta.sol","file":"./interfaces/IVitta.sol","id":1188,"nodeType":"ImportDirective","scope":3399,"sourceUnit":4009,"src":"501:33:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/math/FixedPoint.sol","file":"./math/FixedPoint.sol","id":1189,"nodeType":"ImportDirective","scope":3399,"sourceUnit":4987,"src":"538:31:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"project:/contracts/math/Math.sol","file":"./math/Math.sol","id":1190,"nodeType":"ImportDirective","scope":3399,"sourceUnit":6597,"src":"571:25:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1191,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":103,"src":"622:7:7"},"id":1192,"nodeType":"InheritanceSpecifier","src":"622:7:7"},{"baseName":{"id":1193,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":195,"src":"631:8:7"},"id":1194,"nodeType":"InheritanceSpecifier","src":"631:8:7"}],"contractDependencies":[103,195,866],"contractKind":"contract","fullyImplemented":true,"id":3398,"linearizedBaseContracts":[3398,195,103,866],"name":"Liquidity","nodeType":"ContractDefinition","nodes":[{"id":1197,"libraryName":{"id":1195,"name":"SafeMath","nodeType":"IdentifierPath","referencedDeclaration":1178,"src":"655:8:7"},"nodeType":"UsingForDirective","src":"649:27:7","typeName":{"id":1196,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":1200,"libraryName":{"id":1198,"name":"FixedPoint","nodeType":"IdentifierPath","referencedDeclaration":4986,"src":"688:10:7"},"nodeType":"UsingForDirective","src":"682:29:7","typeName":{"id":1199,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":1204,"mutability":"mutable","name":"platforms","nodeType":"VariableDeclaration","scope":3398,"src":"719:39:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform[]"},"typeName":{"baseType":{"id":1202,"nodeType":"UserDefinedTypeName","pathNode":{"id":1201,"name":"ILiquidity.platform","nodeType":"IdentifierPath","referencedDeclaration":3582,"src":"719:19:7"},"referencedDeclaration":3582,"src":"719:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_storage_ptr","typeString":"struct ILiquidity.platform"}},"id":1203,"nodeType":"ArrayTypeName","src":"719:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.platform[]"}},"visibility":"private"},{"constant":false,"id":1208,"mutability":"mutable","name":"platformIndex","nodeType":"VariableDeclaration","scope":3398,"src":"765:49:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1207,"keyType":{"id":1205,"name":"address","nodeType":"ElementaryTypeName","src":"773:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"765:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1206,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1212,"mutability":"mutable","name":"tokens","nodeType":"VariableDeclaration","scope":3398,"src":"823:33:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token[]"},"typeName":{"baseType":{"id":1210,"nodeType":"UserDefinedTypeName","pathNode":{"id":1209,"name":"ILiquidity.token","nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"823:16:7"},"referencedDeclaration":3587,"src":"823:16:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage_ptr","typeString":"struct ILiquidity.token"}},"id":1211,"nodeType":"ArrayTypeName","src":"823:18:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.token[]"}},"visibility":"private"},{"constant":false,"id":1216,"mutability":"mutable","name":"tokenIndex","nodeType":"VariableDeclaration","scope":3398,"src":"863:46:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1215,"keyType":{"id":1213,"name":"address","nodeType":"ElementaryTypeName","src":"871:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"863:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1214,"name":"uint256","nodeType":"ElementaryTypeName","src":"882:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1220,"mutability":"mutable","name":"providers","nodeType":"VariableDeclaration","scope":3398,"src":"922:39:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider[]"},"typeName":{"baseType":{"id":1218,"nodeType":"UserDefinedTypeName","pathNode":{"id":1217,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"922:19:7"},"referencedDeclaration":3592,"src":"922:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"id":1219,"nodeType":"ArrayTypeName","src":"922:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.provider[]"}},"visibility":"private"},{"constant":false,"id":1223,"mutability":"mutable","name":"LPs","nodeType":"VariableDeclaration","scope":3398,"src":"968:21:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":1221,"name":"address","nodeType":"ElementaryTypeName","src":"968:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1222,"nodeType":"ArrayTypeName","src":"968:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"constant":false,"id":1226,"mutability":"mutable","name":"investmentCap","nodeType":"VariableDeclaration","scope":3398,"src":"998:31:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1224,"name":"uint256","nodeType":"ElementaryTypeName","src":"998:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":1225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":1229,"mutability":"mutable","name":"timeLimit","nodeType":"VariableDeclaration","scope":3398,"src":"1036:27:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1227,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":1228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":1232,"mutability":"mutable","name":"totalIssued","nodeType":"VariableDeclaration","scope":3398,"src":"1074:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1230,"name":"uint256","nodeType":"ElementaryTypeName","src":"1074:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":1231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1102:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":1234,"mutability":"mutable","name":"vitta","nodeType":"VariableDeclaration","scope":3398,"src":"1112:21:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1233,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":1236,"mutability":"mutable","name":"treasury","nodeType":"VariableDeclaration","scope":3398,"src":"1193:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1235,"name":"address","nodeType":"ElementaryTypeName","src":"1193:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":1238,"mutability":"mutable","name":"liquidityShare","nodeType":"VariableDeclaration","scope":3398,"src":"1224:30:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1237,"name":"uint256","nodeType":"ElementaryTypeName","src":"1224:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"canonicalName":"Liquidity.investment","id":1243,"members":[{"constant":false,"id":1240,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1243,"src":"1291:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1242,"mutability":"mutable","name":"tokenAddress","nodeType":"VariableDeclaration","scope":1243,"src":"1321:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1241,"name":"address","nodeType":"ElementaryTypeName","src":"1321:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"investment","nodeType":"StructDefinition","scope":3398,"src":"1263:86:7","visibility":"public"},{"canonicalName":"Liquidity.performance","id":1248,"members":[{"constant":false,"id":1245,"mutability":"mutable","name":"liquidityProvided","nodeType":"VariableDeclaration","scope":1248,"src":"1390:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1390:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1247,"mutability":"mutable","name":"commissionsEarned","nodeType":"VariableDeclaration","scope":1248,"src":"1426:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1246,"name":"uint256","nodeType":"ElementaryTypeName","src":"1426:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"performance","nodeType":"StructDefinition","scope":3398,"src":"1361:98:7","visibility":"public"},{"constant":false,"id":1255,"mutability":"mutable","name":"investors","nodeType":"VariableDeclaration","scope":3398,"src":"1511:68:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment))"},"typeName":{"id":1254,"keyType":{"id":1249,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:50:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment))"},"valueType":{"id":1253,"keyType":{"id":1250,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:30:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment)"},"valueType":{"id":1252,"nodeType":"UserDefinedTypeName","pathNode":{"id":1251,"name":"investment","nodeType":"IdentifierPath","referencedDeclaration":1243,"src":"1549:10:7"},"referencedDeclaration":1243,"src":"1549:10:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage_ptr","typeString":"struct Liquidity.investment"}}}},"visibility":"private"},{"constant":false,"id":1259,"mutability":"mutable","name":"stakes","nodeType":"VariableDeclaration","scope":3398,"src":"1649:42:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1258,"keyType":{"id":1256,"name":"address","nodeType":"ElementaryTypeName","src":"1657:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1649:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1257,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1264,"mutability":"mutable","name":"managers","nodeType":"VariableDeclaration","scope":3398,"src":"1751:46:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":1263,"keyType":{"id":1260,"name":"address","nodeType":"ElementaryTypeName","src":"1759:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1751:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueType":{"baseType":{"id":1261,"name":"address","nodeType":"ElementaryTypeName","src":"1770:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1262,"nodeType":"ArrayTypeName","src":"1770:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"private"},{"constant":false,"id":1270,"mutability":"mutable","name":"managerIndex","nodeType":"VariableDeclaration","scope":3398,"src":"1864:68:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":1269,"keyType":{"id":1265,"name":"address","nodeType":"ElementaryTypeName","src":"1872:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1864:47:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":1268,"keyType":{"id":1266,"name":"address","nodeType":"ElementaryTypeName","src":"1891:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1883:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":1279,"mutability":"mutable","name":"managerRoi","nodeType":"VariableDeclaration","scope":3398,"src":"2067:90:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance)))"},"typeName":{"id":1278,"keyType":{"id":1271,"name":"address","nodeType":"ElementaryTypeName","src":"2075:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2067:71:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance)))"},"valueType":{"id":1277,"keyType":{"id":1272,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2086:51:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance))"},"valueType":{"id":1276,"keyType":{"id":1273,"name":"uint256","nodeType":"ElementaryTypeName","src":"2113:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2105:31:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance)"},"valueType":{"id":1275,"nodeType":"UserDefinedTypeName","pathNode":{"id":1274,"name":"performance","nodeType":"IdentifierPath","referencedDeclaration":1248,"src":"2124:11:7"},"referencedDeclaration":1248,"src":"2124:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage_ptr","typeString":"struct Liquidity.performance"}}}}},"visibility":"private"},{"constant":false,"id":1284,"mutability":"mutable","name":"platformRoi","nodeType":"VariableDeclaration","scope":3398,"src":"2204:51:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance)"},"typeName":{"id":1283,"keyType":{"id":1280,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2204:31:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance)"},"valueType":{"id":1282,"nodeType":"UserDefinedTypeName","pathNode":{"id":1281,"name":"performance","nodeType":"IdentifierPath","referencedDeclaration":1248,"src":"2223:11:7"},"referencedDeclaration":1248,"src":"2223:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage_ptr","typeString":"struct Liquidity.performance"}}},"visibility":"private"},{"constant":false,"id":1288,"mutability":"mutable","name":"exchangeRate","nodeType":"VariableDeclaration","scope":3398,"src":"2310:48:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1287,"keyType":{"id":1285,"name":"address","nodeType":"ElementaryTypeName","src":"2318:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2310:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1286,"name":"uint256","nodeType":"ElementaryTypeName","src":"2329:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1292,"mutability":"mutable","name":"LPIndex","nodeType":"VariableDeclaration","scope":3398,"src":"2402:43:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1291,"keyType":{"id":1289,"name":"address","nodeType":"ElementaryTypeName","src":"2410:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2402:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1290,"name":"uint256","nodeType":"ElementaryTypeName","src":"2421:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1294,"mutability":"mutable","name":"oracle","nodeType":"VariableDeclaration","scope":3398,"src":"2469:22:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1293,"name":"address","nodeType":"ElementaryTypeName","src":"2469:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":1306,"nodeType":"Block","src":"2535:77:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1299,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"2554:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1300,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"2562:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2554:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a6564206f7261636c65","id":1302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2570:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bcd345f4c7b73f5cd4feebd39cb3befed09360f28038e7e668a1b391b719f4a","typeString":"literal_string \\"Unauthorized oracle\\""},"value":"Unauthorized oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bcd345f4c7b73f5cd4feebd39cb3befed09360f28038e7e668a1b391b719f4a","typeString":"literal_string \\"Unauthorized oracle\\""}],"id":1298,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2546:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2546:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1304,"nodeType":"ExpressionStatement","src":"2546:46:7"},{"id":1305,"nodeType":"PlaceholderStatement","src":"2603:1:7"}]},"id":1307,"name":"onlyOracle","nodeType":"ModifierDefinition","parameters":{"id":1297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1296,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":1307,"src":"2520:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1295,"name":"address","nodeType":"ElementaryTypeName","src":"2520:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2519:16:7"},"src":"2500:112:7","virtual":false,"visibility":"internal"},{"body":{"id":1319,"nodeType":"Block","src":"2658:82:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1312,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"2677:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1313,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2687:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2677:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a656420747265617375726572","id":1315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2695:24:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e27cf84062ca3c0af9382af6cdd258fd123bdb3418633ba1a4dde9e29d5d3b7","typeString":"literal_string \\"Unauthorized treasurer\\""},"value":"Unauthorized treasurer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9e27cf84062ca3c0af9382af6cdd258fd123bdb3418633ba1a4dde9e29d5d3b7","typeString":"literal_string \\"Unauthorized treasurer\\""}],"id":1311,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2669:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2669:51:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1317,"nodeType":"ExpressionStatement","src":"2669:51:7"},{"id":1318,"nodeType":"PlaceholderStatement","src":"2731:1:7"}]},"id":1320,"name":"onlyTreasurer","nodeType":"ModifierDefinition","parameters":{"id":1310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1309,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":1320,"src":"2643:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1308,"name":"address","nodeType":"ElementaryTypeName","src":"2643:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2642:16:7"},"src":"2620:120:7","virtual":false,"visibility":"internal"},{"constant":false,"id":1324,"mutability":"mutable","name":"lock","nodeType":"VariableDeclaration","scope":3398,"src":"2761:37:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":1323,"keyType":{"id":1321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2769:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2761:24:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":1322,"name":"bool","nodeType":"ElementaryTypeName","src":"2780:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"anonymous":false,"id":1330,"name":"SupportToken","nodeType":"EventDefinition","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1326,"indexed":true,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1330,"src":"2826:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1325,"name":"address","nodeType":"ElementaryTypeName","src":"2826:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1328,"indexed":false,"mutability":"mutable","name":"tokenName","nodeType":"VariableDeclaration","scope":1330,"src":"2849:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1327,"name":"string","nodeType":"ElementaryTypeName","src":"2849:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2825:41:7"},"src":"2807:60:7"},{"anonymous":false,"id":1336,"name":"RegisterPlatform","nodeType":"EventDefinition","parameters":{"id":1335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1332,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1336,"src":"2896:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1331,"name":"address","nodeType":"ElementaryTypeName","src":"2896:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1334,"indexed":false,"mutability":"mutable","name":"platformName","nodeType":"VariableDeclaration","scope":1336,"src":"2922:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2922:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2895:48:7"},"src":"2873:71:7"},{"anonymous":false,"id":1342,"name":"PlatformManagers","nodeType":"EventDefinition","parameters":{"id":1341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1342,"src":"2973:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1337,"name":"address","nodeType":"ElementaryTypeName","src":"2973:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1340,"indexed":false,"mutability":"mutable","name":"manager","nodeType":"VariableDeclaration","scope":1342,"src":"2999:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1339,"name":"address","nodeType":"ElementaryTypeName","src":"2999:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2972:43:7"},"src":"2950:66:7"},{"anonymous":false,"id":1348,"name":"RequestRate","nodeType":"EventDefinition","parameters":{"id":1347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1344,"indexed":true,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1348,"src":"3040:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1343,"name":"address","nodeType":"ElementaryTypeName","src":"3040:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1346,"indexed":false,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":1348,"src":"3063:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1345,"name":"uint256","nodeType":"ElementaryTypeName","src":"3063:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3039:39:7"},"src":"3022:57:7"},{"anonymous":false,"id":1358,"name":"RequestIssue","nodeType":"EventDefinition","parameters":{"id":1357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1350,"indexed":true,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":1358,"src":"3104:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1349,"name":"address","nodeType":"ElementaryTypeName","src":"3104:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1352,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1358,"src":"3130:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1351,"name":"address","nodeType":"ElementaryTypeName","src":"3130:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1354,"indexed":false,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1358,"src":"3145:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1353,"name":"uint256","nodeType":"ElementaryTypeName","src":"3145:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1356,"indexed":false,"mutability":"mutable","name":"timestamp","nodeType":"VariableDeclaration","scope":1358,"src":"3166:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1355,"name":"uint256","nodeType":"ElementaryTypeName","src":"3166:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:81:7"},"src":"3085:100:7"},{"anonymous":false,"id":1368,"name":"IssuedVitta","nodeType":"EventDefinition","parameters":{"id":1367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1360,"indexed":true,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":1368,"src":"3209:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1359,"name":"address","nodeType":"ElementaryTypeName","src":"3209:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1362,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1368,"src":"3235:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1361,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1364,"indexed":false,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1368,"src":"3250:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1363,"name":"uint256","nodeType":"ElementaryTypeName","src":"3250:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1366,"indexed":false,"mutability":"mutable","name":"LPToIssue","nodeType":"VariableDeclaration","scope":1368,"src":"3271:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1365,"name":"uint256","nodeType":"ElementaryTypeName","src":"3271:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3208:81:7"},"src":"3191:99:7"},{"anonymous":false,"id":1380,"name":"PlatformLiquidity","nodeType":"EventDefinition","parameters":{"id":1379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1370,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1380,"src":"3320:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1369,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1372,"indexed":false,"mutability":"mutable","name":"manager","nodeType":"VariableDeclaration","scope":1380,"src":"3346:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1371,"name":"address","nodeType":"ElementaryTypeName","src":"3346:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1374,"indexed":false,"mutability":"mutable","name":"LPToken","nodeType":"VariableDeclaration","scope":1380,"src":"3363:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1373,"name":"uint256","nodeType":"ElementaryTypeName","src":"3363:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1376,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1380,"src":"3380:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1375,"name":"address","nodeType":"ElementaryTypeName","src":"3380:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1378,"indexed":false,"mutability":"mutable","name":"tokenAmount","nodeType":"VariableDeclaration","scope":1380,"src":"3395:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1377,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3319:96:7"},"src":"3296:120:7"},{"anonymous":false,"id":1390,"name":"ManagerReturns","nodeType":"EventDefinition","parameters":{"id":1389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1390,"src":"3443:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1381,"name":"address","nodeType":"ElementaryTypeName","src":"3443:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1384,"indexed":true,"mutability":"mutable","name":"manager","nodeType":"VariableDeclaration","scope":1390,"src":"3469:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1383,"name":"address","nodeType":"ElementaryTypeName","src":"3469:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1386,"indexed":false,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":1390,"src":"3494:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1385,"name":"address","nodeType":"ElementaryTypeName","src":"3494:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1388,"indexed":false,"mutability":"mutable","name":"distribution","nodeType":"VariableDeclaration","scope":1390,"src":"3509:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1387,"name":"uint256","nodeType":"ElementaryTypeName","src":"3509:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3442:88:7"},"src":"3422:109:7"},{"anonymous":false,"id":1398,"name":"PlatformReturns","nodeType":"EventDefinition","parameters":{"id":1397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1392,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1398,"src":"3559:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1391,"name":"address","nodeType":"ElementaryTypeName","src":"3559:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1394,"indexed":false,"mutability":"mutable","name":"vitta","nodeType":"VariableDeclaration","scope":1398,"src":"3585:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1393,"name":"address","nodeType":"ElementaryTypeName","src":"3585:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1396,"indexed":false,"mutability":"mutable","name":"distribution","nodeType":"VariableDeclaration","scope":1398,"src":"3600:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1395,"name":"uint256","nodeType":"ElementaryTypeName","src":"3600:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3558:63:7"},"src":"3537:85:7"},{"anonymous":false,"id":1410,"name":"InvestorReturns","nodeType":"EventDefinition","parameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1400,"indexed":true,"mutability":"mutable","name":"platform","nodeType":"VariableDeclaration","scope":1410,"src":"3650:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1399,"name":"address","nodeType":"ElementaryTypeName","src":"3650:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1402,"indexed":true,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":1410,"src":"3676:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1401,"name":"address","nodeType":"ElementaryTypeName","src":"3676:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1404,"indexed":false,"mutability":"mutable","name":"vitta","nodeType":"VariableDeclaration","scope":1410,"src":"3702:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1403,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1406,"indexed":false,"mutability":"mutable","name":"prorataStake","nodeType":"VariableDeclaration","scope":1410,"src":"3717:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1405,"name":"uint256","nodeType":"ElementaryTypeName","src":"3717:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1408,"indexed":false,"mutability":"mutable","name":"timestamp","nodeType":"VariableDeclaration","scope":1410,"src":"3739:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1407,"name":"uint256","nodeType":"ElementaryTypeName","src":"3739:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3649:108:7"},"src":"3628:130:7"},{"body":{"id":1447,"nodeType":"Block","src":"4092:198:7","statements":[{"expression":{"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1422,"name":"investmentCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"4111:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1423,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"4127:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4111:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1425,"nodeType":"ExpressionStatement","src":"4111:20:7"},{"expression":{"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1426,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"4142:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1427,"name":"_limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"4154:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4142:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1429,"nodeType":"ExpressionStatement","src":"4142:18:7"},{"expression":{"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1430,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"4171:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4185:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4171:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1433,"nodeType":"ExpressionStatement","src":"4171:15:7"},{"expression":{"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1434,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"4197:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1435,"name":"_share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"4214:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4197:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1437,"nodeType":"ExpressionStatement","src":"4197:23:7"},{"expression":{"id":1440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1438,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"4231:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1439,"name":"_vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"4239:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4231:14:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1441,"nodeType":"ExpressionStatement","src":"4231:14:7"},{"expression":{"id":1445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1442,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"4257:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":1443,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"4268:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4268:7:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4257:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1446,"nodeType":"ExpressionStatement","src":"4257:18:7"}]},"documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"3772:241:7","text":"Constructor for the Verified Liquidity manager\\n@param  _cap    investment limit for each investor\\n@param  _limit  time limit for issue close\\n@param  _vitta  address of Verified liquidity token"},"id":1448,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":1420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1413,"mutability":"mutable","name":"_cap","nodeType":"VariableDeclaration","scope":1448,"src":"4031:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1412,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1415,"mutability":"mutable","name":"_limit","nodeType":"VariableDeclaration","scope":1448,"src":"4045:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1414,"name":"uint256","nodeType":"ElementaryTypeName","src":"4045:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1417,"mutability":"mutable","name":"_share","nodeType":"VariableDeclaration","scope":1448,"src":"4061:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"4061:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1419,"mutability":"mutable","name":"_vitta","nodeType":"VariableDeclaration","scope":1448,"src":"4077:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1418,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4030:62:7"},"returnParameters":{"id":1421,"nodeType":"ParameterList","parameters":[],"src":"4092:0:7"},"scope":3398,"src":"4019:271:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":1466,"nodeType":"Block","src":"4629:68:7","statements":[{"expression":{"id":1460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1458,"name":"investmentCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"4640:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1459,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"4656:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4640:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1461,"nodeType":"ExpressionStatement","src":"4640:20:7"},{"expression":{"id":1464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1462,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"4671:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1463,"name":"_limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1453,"src":"4683:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4671:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1465,"nodeType":"ExpressionStatement","src":"4671:18:7"}]},"documentation":{"id":1449,"nodeType":"StructuredDocumentation","src":"4298:254:7","text":"Updates investment and time limits for Verified Liquidity token after initial issue with constructor defined parameters\\n@param  _cap    investment limit for each investor\\n@param  _limit  time limit for issue close "},"functionSelector":"e4afbc6b","id":1467,"implemented":true,"kind":"function","modifiers":[{"id":1456,"modifierName":{"id":1455,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"4619:9:7"},"nodeType":"ModifierInvocation","src":"4619:9:7"}],"name":"createSupply","nodeType":"FunctionDefinition","parameters":{"id":1454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1451,"mutability":"mutable","name":"_cap","nodeType":"VariableDeclaration","scope":1467,"src":"4580:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1450,"name":"uint256","nodeType":"ElementaryTypeName","src":"4580:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1453,"mutability":"mutable","name":"_limit","nodeType":"VariableDeclaration","scope":1467,"src":"4594:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1452,"name":"uint256","nodeType":"ElementaryTypeName","src":"4594:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4579:30:7"},"returnParameters":{"id":1457,"nodeType":"ParameterList","parameters":[],"src":"4629:0:7"},"scope":3398,"src":"4558:139:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1513,"nodeType":"Block","src":"5000:330:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1477,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"5014:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1479,"indexExpression":{"id":1478,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5025:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5014:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5034:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5014:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1512,"nodeType":"IfStatement","src":"5011:312:7","trueBody":{"id":1511,"nodeType":"Block","src":"5036:287:7","statements":[{"assignments":[1486],"declarations":[{"constant":false,"id":1486,"mutability":"mutable","name":"t","nodeType":"VariableDeclaration","scope":1511,"src":"5051:25:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token"},"typeName":{"id":1485,"nodeType":"UserDefinedTypeName","pathNode":{"id":1484,"name":"ILiquidity.token","nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"5051:16:7"},"referencedDeclaration":3587,"src":"5051:16:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage_ptr","typeString":"struct ILiquidity.token"}},"visibility":"internal"}],"id":1492,"initialValue":{"arguments":[{"id":1489,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"5126:5:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1490,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5164:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1487,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"5079:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":1488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":3587,"src":"5079:16:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_token_$3587_storage_ptr_$","typeString":"type(struct ILiquidity.token storage pointer)"}},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["tokenName","tokenAddress"],"nodeType":"FunctionCall","src":"5079:107:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token memory"}},"nodeType":"VariableDeclarationStatement","src":"5051:135:7"},{"expression":{"arguments":[{"id":1496,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1486,"src":"5213:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_token_$3587_memory_ptr","typeString":"struct ILiquidity.token memory"}],"expression":{"id":1493,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"5201:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5201:11:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_token_$3587_storage_$returns$__$","typeString":"function (struct ILiquidity.token storage ref)"}},"id":1497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5201:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1498,"nodeType":"ExpressionStatement","src":"5201:14:7"},{"expression":{"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1499,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"5230:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1501,"indexExpression":{"id":1500,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5241:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5230:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1502,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"5251:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5251:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5230:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1505,"nodeType":"ExpressionStatement","src":"5230:34:7"},{"eventCall":{"arguments":[{"id":1507,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"5297:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1508,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"5305:5:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1506,"name":"SupportToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"5284:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5284:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1510,"nodeType":"EmitStatement","src":"5279:32:7"}]}}]},"documentation":{"id":1468,"nodeType":"StructuredDocumentation","src":"4705:210:7","text":"Specifies list of supported tokens that can be invested in the Verified Liquidity token\\n@param  _token  address of token supported\\n@param  _name   name of token supported"},"functionSelector":"4ea14cab","id":1514,"implemented":true,"kind":"function","modifiers":[{"id":1475,"modifierName":{"id":1474,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"4990:9:7"},"nodeType":"ModifierInvocation","src":"4990:9:7"}],"name":"supportTokens","nodeType":"FunctionDefinition","parameters":{"id":1473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1470,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":1514,"src":"4944:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1469,"name":"address","nodeType":"ElementaryTypeName","src":"4944:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1472,"mutability":"mutable","name":"_name","nodeType":"VariableDeclaration","scope":1514,"src":"4960:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1471,"name":"string","nodeType":"ElementaryTypeName","src":"4960:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4943:37:7"},"returnParameters":{"id":1476,"nodeType":"ParameterList","parameters":[],"src":"5000:0:7"},"scope":3398,"src":"4921:409:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1532,"nodeType":"Block","src":"5589:109:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1522,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"5603:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1524,"indexExpression":{"id":1523,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1517,"src":"5614:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5603:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5622:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5603:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"hexValue":"66616c7365","id":1529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5685:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1521,"id":1530,"nodeType":"Return","src":"5678:12:7"},"id":1531,"nodeType":"IfStatement","src":"5600:90:7","trueBody":{"expression":{"hexValue":"74727565","id":1527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5645:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1521,"id":1528,"nodeType":"Return","src":"5638:11:7"}}]},"documentation":{"id":1515,"nodeType":"StructuredDocumentation","src":"5338:172:7","text":"Checks if a specified token is supported for investing in the Verified Liquidity token\\n@param  _token  token that is supported for investment"},"functionSelector":"5d4f5b1c","id":1533,"implemented":true,"kind":"function","modifiers":[],"name":"checkSupportForToken","nodeType":"FunctionDefinition","parameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":1533,"src":"5546:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1516,"name":"address","nodeType":"ElementaryTypeName","src":"5546:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5545:16:7"},"returnParameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1520,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1533,"src":"5584:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1519,"name":"bool","nodeType":"ElementaryTypeName","src":"5584:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5583:6:7"},"scope":3398,"src":"5516:182:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1543,"nodeType":"Block","src":"5844:32:7","statements":[{"expression":{"id":1541,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"5862:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"functionReturnParameters":1540,"id":1542,"nodeType":"Return","src":"5855:13:7"}]},"documentation":{"id":1534,"nodeType":"StructuredDocumentation","src":"5706:54:7","text":"Returns list of supported tokens"},"functionSelector":"d3c7c2c7","id":1544,"implemented":true,"kind":"function","modifiers":[],"name":"getSupportedTokens","nodeType":"FunctionDefinition","parameters":{"id":1535,"nodeType":"ParameterList","parameters":[],"src":"5793:2:7"},"returnParameters":{"id":1540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1539,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1544,"src":"5818:25:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_memory_ptr_$dyn_memory_ptr","typeString":"struct ILiquidity.token[]"},"typeName":{"baseType":{"id":1537,"nodeType":"UserDefinedTypeName","pathNode":{"id":1536,"name":"ILiquidity.token","nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"5818:16:7"},"referencedDeclaration":3587,"src":"5818:16:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage_ptr","typeString":"struct ILiquidity.token"}},"id":1538,"nodeType":"ArrayTypeName","src":"5818:18:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.token[]"}},"visibility":"internal"}],"src":"5817:27:7"},"scope":3398,"src":"5766:110:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1687,"nodeType":"Block","src":"5993:1055:7","statements":[{"assignments":[1553],"declarations":[{"constant":false,"id":1553,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":1687,"src":"6004:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1552,"name":"bool","nodeType":"ElementaryTypeName","src":"6004:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1555,"initialValue":{"hexValue":"66616c7365","id":1554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6017:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"6004:18:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1556,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6036:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1558,"indexExpression":{"id":1557,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6047:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6036:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6056:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6036:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"6033:1008:7","trueBody":{"id":1685,"nodeType":"Block","src":"6058:983:7","statements":[{"assignments":[1562],"declarations":[{"constant":false,"id":1562,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":1685,"src":"6073:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint","nodeType":"ElementaryTypeName","src":"6073:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1565,"initialValue":{"expression":{"id":1563,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6087:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6087:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6073:27:7"},{"body":{"id":1683,"nodeType":"Block","src":"6143:887:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1576,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6165:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1578,"indexExpression":{"id":1577,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6172:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6165:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6165:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1580,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6189:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6165:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":1633,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"6633:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1681,"nodeType":"IfStatement","src":"6630:385:7","trueBody":{"id":1680,"nodeType":"Block","src":"6639:376:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1634,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6665:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1635,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6668:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6668:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6682:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6668:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6665:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1678,"nodeType":"Block","src":"6824:172:7","statements":[{"expression":{"id":1660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1652,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6850:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1654,"indexExpression":{"id":1653,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6857:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6850:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1655,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6860:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1659,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6867:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6869:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6867:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6860:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"src":"6850:21:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1661,"nodeType":"ExpressionStatement","src":"6850:21:7"},{"expression":{"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1662,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6897:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1667,"indexExpression":{"expression":{"baseExpression":{"id":1663,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6908:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1665,"indexExpression":{"id":1664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6915:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6908:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6908:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6897:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1668,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6934:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1673,"indexExpression":{"expression":{"baseExpression":{"id":1669,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6945:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1671,"indexExpression":{"id":1670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6952:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6945:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6945:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6934:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6971:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6934:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6897:75:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1677,"nodeType":"ExpressionStatement","src":"6897:75:7"}]},"id":1679,"nodeType":"IfStatement","src":"6662:334:7","trueBody":{"id":1651,"nodeType":"Block","src":"6684:114:7","statements":[{"expression":{"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6710:16:7","subExpression":{"baseExpression":{"id":1640,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6717:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1642,"indexExpression":{"id":1641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6724:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6717:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1644,"nodeType":"ExpressionStatement","src":"6710:16:7"},{"expression":{"id":1649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1645,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6752:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1647,"indexExpression":{"id":1646,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6763:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6752:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6773:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6752:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1650,"nodeType":"ExpressionStatement","src":"6752:22:7"}]}}]}},"id":1682,"nodeType":"IfStatement","src":"6162:853:7","trueBody":{"id":1632,"nodeType":"Block","src":"6196:411:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6222:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1583,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6225:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6225:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6239:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6225:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6222:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1626,"nodeType":"Block","src":"6381:172:7","statements":[{"expression":{"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1600,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6407:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1602,"indexExpression":{"id":1601,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6414:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6407:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1603,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6417:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1607,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1604,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6424:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6426:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6424:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6417:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"src":"6407:21:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1609,"nodeType":"ExpressionStatement","src":"6407:21:7"},{"expression":{"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1610,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6454:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1615,"indexExpression":{"expression":{"baseExpression":{"id":1611,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6465:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1613,"indexExpression":{"id":1612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6472:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6465:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6465:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6454:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1616,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6491:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1621,"indexExpression":{"expression":{"baseExpression":{"id":1617,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6502:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1619,"indexExpression":{"id":1618,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6509:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6502:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":1620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"6502:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6491:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6528:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6491:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6454:75:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1625,"nodeType":"ExpressionStatement","src":"6454:75:7"}]},"id":1627,"nodeType":"IfStatement","src":"6219:334:7","trueBody":{"id":1599,"nodeType":"Block","src":"6241:114:7","statements":[{"expression":{"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6267:16:7","subExpression":{"baseExpression":{"id":1588,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"6274:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":1590,"indexExpression":{"id":1589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6281:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6274:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1592,"nodeType":"ExpressionStatement","src":"6267:16:7"},{"expression":{"id":1597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1593,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"6309:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1595,"indexExpression":{"id":1594,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6320:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6309:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6330:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6309:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1598,"nodeType":"ExpressionStatement","src":"6309:22:7"}]}},{"expression":{"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1628,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"6575:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6583:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6575:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1631,"nodeType":"ExpressionStatement","src":"6575:12:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1570,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6129:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1571,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"6131:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6129:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1684,"initializationExpression":{"assignments":[1567],"declarations":[{"constant":false,"id":1567,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":1684,"src":"6119:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1566,"name":"uint","nodeType":"ElementaryTypeName","src":"6119:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1569,"initialValue":{"hexValue":"30","id":1568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6126:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6119:8:7"},"loopExpression":{"expression":{"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6139:3:7","subExpression":{"id":1573,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"6139:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1575,"nodeType":"ExpressionStatement","src":"6139:3:7"},"nodeType":"ForStatement","src":"6115:915:7"}]}}]},"documentation":{"id":1545,"nodeType":"StructuredDocumentation","src":"5884:47:7","text":"Removes a supported token"},"functionSelector":"5fa7b584","id":1688,"implemented":true,"kind":"function","modifiers":[{"id":1550,"modifierName":{"id":1549,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"5983:9:7"},"nodeType":"ModifierInvocation","src":"5983:9:7"}],"name":"removeToken","nodeType":"FunctionDefinition","parameters":{"id":1548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1547,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":1688,"src":"5958:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1546,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5957:16:7"},"returnParameters":{"id":1551,"nodeType":"ParameterList","parameters":[],"src":"5993:0:7"},"scope":3398,"src":"5937:1111:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1734,"nodeType":"Block","src":"7433:422:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1698,"name":"platformIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"7447:13:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1700,"indexExpression":{"id":1699,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7461:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7447:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7482:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7447:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1733,"nodeType":"IfStatement","src":"7444:404:7","trueBody":{"id":1732,"nodeType":"Block","src":"7484:364:7","statements":[{"assignments":[1707],"declarations":[{"constant":false,"id":1707,"mutability":"mutable","name":"p","nodeType":"VariableDeclaration","scope":1732,"src":"7499:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform"},"typeName":{"id":1706,"nodeType":"UserDefinedTypeName","pathNode":{"id":1705,"name":"ILiquidity.platform","nodeType":"IdentifierPath","referencedDeclaration":3582,"src":"7499:19:7"},"referencedDeclaration":3582,"src":"7499:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_storage_ptr","typeString":"struct ILiquidity.platform"}},"visibility":"internal"}],"id":1713,"initialValue":{"arguments":[{"id":1710,"name":"_platformName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"7583:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1711,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7632:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1708,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"7530:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"platform","nodeType":"MemberAccess","referencedDeclaration":3582,"src":"7530:19:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_platform_$3582_storage_ptr_$","typeString":"type(struct ILiquidity.platform storage pointer)"}},"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["platformName","platformAddress"],"nodeType":"FunctionCall","src":"7530:136:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform memory"}},"nodeType":"VariableDeclarationStatement","src":"7499:167:7"},{"expression":{"arguments":[{"id":1717,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"7696:1:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_platform_$3582_memory_ptr","typeString":"struct ILiquidity.platform memory"}],"expression":{"id":1714,"name":"platforms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1204,"src":"7681:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform storage ref[] storage ref"}},"id":1716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7681:14:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_platform_$3582_storage_$returns$__$","typeString":"function (struct ILiquidity.platform storage ref)"}},"id":1718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7681:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1719,"nodeType":"ExpressionStatement","src":"7681:17:7"},{"expression":{"id":1725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1720,"name":"platformIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"7713:13:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1722,"indexExpression":{"id":1721,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7727:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7713:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1723,"name":"platforms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1204,"src":"7749:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform storage ref[] storage ref"}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7749:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7713:52:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1726,"nodeType":"ExpressionStatement","src":"7713:52:7"},{"eventCall":{"arguments":[{"id":1728,"name":"_liquidityPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"7802:18:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1729,"name":"_platformName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"7822:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1727,"name":"RegisterPlatform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1336,"src":"7785:16:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7785:51:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1731,"nodeType":"EmitStatement","src":"7780:56:7"}]}}]},"documentation":{"id":1689,"nodeType":"StructuredDocumentation","src":"7056:275:7","text":"Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\\n@param  _liquidityPlatform  address of the market making platform\\n@param  _platformName       name of market making platform"},"functionSelector":"f81f3ee7","id":1735,"implemented":true,"kind":"function","modifiers":[{"id":1696,"modifierName":{"id":1695,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"7423:9:7"},"nodeType":"ModifierInvocation","src":"7423:9:7"}],"name":"registerPlatform","nodeType":"FunctionDefinition","parameters":{"id":1694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1691,"mutability":"mutable","name":"_liquidityPlatform","nodeType":"VariableDeclaration","scope":1735,"src":"7363:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"7363:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1693,"mutability":"mutable","name":"_platformName","nodeType":"VariableDeclaration","scope":1735,"src":"7391:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7391:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7362:51:7"},"returnParameters":{"id":1697,"nodeType":"ParameterList","parameters":[],"src":"7433:0:7"},"scope":3398,"src":"7337:518:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1745,"nodeType":"Block","src":"8003:35:7","statements":[{"expression":{"id":1743,"name":"platforms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1204,"src":"8021:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage","typeString":"struct ILiquidity.platform storage ref[] storage ref"}},"functionReturnParameters":1742,"id":1744,"nodeType":"Return","src":"8014:16:7"}]},"documentation":{"id":1736,"nodeType":"StructuredDocumentation","src":"7867:55:7","text":"Gets list of registered platforms"},"functionSelector":"1fbe552e","id":1746,"implemented":true,"kind":"function","modifiers":[],"name":"getPlatforms","nodeType":"FunctionDefinition","parameters":{"id":1737,"nodeType":"ParameterList","parameters":[],"src":"7949:2:7"},"returnParameters":{"id":1742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1741,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1746,"src":"7974:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_memory_ptr_$dyn_memory_ptr","typeString":"struct ILiquidity.platform[]"},"typeName":{"baseType":{"id":1739,"nodeType":"UserDefinedTypeName","pathNode":{"id":1738,"name":"ILiquidity.platform","nodeType":"IdentifierPath","referencedDeclaration":3582,"src":"7974:19:7"},"referencedDeclaration":3582,"src":"7974:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_platform_$3582_storage_ptr","typeString":"struct ILiquidity.platform"}},"id":1740,"nodeType":"ArrayTypeName","src":"7974:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_platform_$3582_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.platform[]"}},"visibility":"internal"}],"src":"7973:30:7"},"scope":3398,"src":"7928:110:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":1788,"nodeType":"Block","src":"8323:253:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1756,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"8337:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1758,"indexExpression":{"id":1757,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8350:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8337:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1760,"indexExpression":{"id":1759,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8361:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8337:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8372:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8337:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1787,"nodeType":"IfStatement","src":"8334:235:7","trueBody":{"id":1786,"nodeType":"Block","src":"8374:195:7","statements":[{"expression":{"arguments":[{"id":1767,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8414:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":1763,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"8389:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1765,"indexExpression":{"id":1764,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8398:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8389:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"8389:24:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8389:34:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1769,"nodeType":"ExpressionStatement","src":"8389:34:7"},{"expression":{"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1770,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"8438:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1773,"indexExpression":{"id":1771,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8451:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8438:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1774,"indexExpression":{"id":1772,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8462:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8438:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":1775,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"8474:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1777,"indexExpression":{"id":1776,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8483:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8474:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8474:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8438:62:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1780,"nodeType":"ExpressionStatement","src":"8438:62:7"},{"eventCall":{"arguments":[{"id":1782,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"8537:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1783,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"8548:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1781,"name":"PlatformManagers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1342,"src":"8520:16:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8520:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1785,"nodeType":"EmitStatement","src":"8515:42:7"}]}}]},"documentation":{"id":1747,"nodeType":"StructuredDocumentation","src":"8046:195:7","text":"Adds asset manager for managing liquidity\\n@param  _platform   address of market making platform (eg, Balancer)\\n@param  _manager    address of asset manager"},"functionSelector":"8513c619","id":1789,"implemented":true,"kind":"function","modifiers":[{"id":1754,"modifierName":{"id":1753,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"8313:9:7"},"nodeType":"ModifierInvocation","src":"8313:9:7"}],"name":"addManager","nodeType":"FunctionDefinition","parameters":{"id":1752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1749,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":1789,"src":"8267:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1748,"name":"address","nodeType":"ElementaryTypeName","src":"8267:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1751,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":1789,"src":"8286:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1750,"name":"address","nodeType":"ElementaryTypeName","src":"8286:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8266:37:7"},"returnParameters":{"id":1755,"nodeType":"ParameterList","parameters":[],"src":"8323:0:7"},"scope":3398,"src":"8247:329:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1971,"nodeType":"Block","src":"8865:1271:7","statements":[{"assignments":[1800],"declarations":[{"constant":false,"id":1800,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":1971,"src":"8876:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1799,"name":"bool","nodeType":"ElementaryTypeName","src":"8876:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1802,"initialValue":{"hexValue":"66616c7365","id":1801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8889:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"8876:18:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1803,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"8908:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1805,"indexExpression":{"id":1804,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"8921:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8908:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1807,"indexExpression":{"id":1806,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"8932:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8908:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8943:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8908:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1970,"nodeType":"IfStatement","src":"8905:1224:7","trueBody":{"id":1969,"nodeType":"Block","src":"8945:1184:7","statements":[{"assignments":[1811],"declarations":[{"constant":false,"id":1811,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":1969,"src":"8960:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1810,"name":"uint","nodeType":"ElementaryTypeName","src":"8960:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1816,"initialValue":{"expression":{"baseExpression":{"id":1812,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"8974:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1814,"indexExpression":{"id":1813,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"8983:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8974:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8974:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8960:40:7"},{"body":{"id":1967,"nodeType":"Block","src":"9043:1075:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1827,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9065:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1829,"indexExpression":{"id":1828,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9074:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9065:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1831,"indexExpression":{"id":1830,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9085:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9065:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1832,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9089:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9065:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":1901,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9628:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1965,"nodeType":"IfStatement","src":"9625:478:7","trueBody":{"id":1964,"nodeType":"Block","src":"9634:469:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1902,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9660:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1903,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9663:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1905,"indexExpression":{"id":1904,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9672:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9663:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9663:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9690:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9663:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9660:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1962,"nodeType":"Block","src":"9860:224:7","statements":[{"expression":{"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1926,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9886:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1929,"indexExpression":{"id":1927,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9895:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9886:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1930,"indexExpression":{"id":1928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9906:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9886:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":1931,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9909:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1933,"indexExpression":{"id":1932,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9918:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9909:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1937,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1934,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9929:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9931:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9929:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9909:24:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9886:47:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1939,"nodeType":"ExpressionStatement","src":"9886:47:7"},{"expression":{"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1940,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9959:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1947,"indexExpression":{"id":1941,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9972:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9959:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1948,"indexExpression":{"baseExpression":{"baseExpression":{"id":1942,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9983:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1944,"indexExpression":{"id":1943,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9992:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9983:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1946,"indexExpression":{"id":1945,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"10003:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9983:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9959:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1949,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"10009:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1951,"indexExpression":{"id":1950,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"10022:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10009:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1957,"indexExpression":{"baseExpression":{"baseExpression":{"id":1952,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"10033:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1954,"indexExpression":{"id":1953,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"10042:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10033:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1956,"indexExpression":{"id":1955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"10053:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10033:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10009:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10059:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10009:51:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9959:101:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1961,"nodeType":"ExpressionStatement","src":"9959:101:7"}]},"id":1963,"nodeType":"IfStatement","src":"9657:427:7","trueBody":{"id":1925,"nodeType":"Block","src":"9692:142:7","statements":[{"expression":{"id":1915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9718:29:7","subExpression":{"baseExpression":{"baseExpression":{"id":1910,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9725:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1912,"indexExpression":{"id":1911,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9734:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9725:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1914,"indexExpression":{"id":1913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9745:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9725:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1916,"nodeType":"ExpressionStatement","src":"9718:29:7"},{"expression":{"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1917,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9773:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1920,"indexExpression":{"id":1918,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9786:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9773:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1921,"indexExpression":{"id":1919,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9797:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9773:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9809:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9773:37:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1924,"nodeType":"ExpressionStatement","src":"9773:37:7"}]}}]}},"id":1966,"nodeType":"IfStatement","src":"9062:1041:7","trueBody":{"id":1900,"nodeType":"Block","src":"9098:504:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1834,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9124:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1835,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9127:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1837,"indexExpression":{"id":1836,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9136:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9127:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9127:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9154:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9127:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9124:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1894,"nodeType":"Block","src":"9324:224:7","statements":[{"expression":{"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1858,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9350:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1861,"indexExpression":{"id":1859,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9359:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9350:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1862,"indexExpression":{"id":1860,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9370:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9350:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":1863,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9373:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1865,"indexExpression":{"id":1864,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9382:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9373:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1869,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1866,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9393:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9395:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9393:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9373:24:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9350:47:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1871,"nodeType":"ExpressionStatement","src":"9350:47:7"},{"expression":{"id":1892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1872,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9423:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1879,"indexExpression":{"id":1873,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9436:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9423:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1880,"indexExpression":{"baseExpression":{"baseExpression":{"id":1874,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9447:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1876,"indexExpression":{"id":1875,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9456:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1878,"indexExpression":{"id":1877,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9467:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9423:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":1881,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9473:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1883,"indexExpression":{"id":1882,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9486:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9473:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1889,"indexExpression":{"baseExpression":{"baseExpression":{"id":1884,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9497:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1886,"indexExpression":{"id":1885,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9506:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9497:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1888,"indexExpression":{"id":1887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9517:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9497:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9473:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9523:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9473:51:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9423:101:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1893,"nodeType":"ExpressionStatement","src":"9423:101:7"}]},"id":1895,"nodeType":"IfStatement","src":"9121:427:7","trueBody":{"id":1857,"nodeType":"Block","src":"9156:142:7","statements":[{"expression":{"id":1847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9182:29:7","subExpression":{"baseExpression":{"baseExpression":{"id":1842,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"9189:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1844,"indexExpression":{"id":1843,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9198:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9189:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1846,"indexExpression":{"id":1845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9209:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9189:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1848,"nodeType":"ExpressionStatement","src":"9182:29:7"},{"expression":{"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1849,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"9237:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1852,"indexExpression":{"id":1850,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9250:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9237:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1853,"indexExpression":{"id":1851,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9261:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9237:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9273:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9237:37:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1856,"nodeType":"ExpressionStatement","src":"9237:37:7"}]}},{"expression":{"id":1898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1896,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9570:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9578:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9570:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1899,"nodeType":"ExpressionStatement","src":"9570:12:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1821,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9029:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1822,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1811,"src":"9031:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9029:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1968,"initializationExpression":{"assignments":[1818],"declarations":[{"constant":false,"id":1818,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":1968,"src":"9019:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1817,"name":"uint","nodeType":"ElementaryTypeName","src":"9019:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1820,"initialValue":{"hexValue":"30","id":1819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9019:8:7"},"loopExpression":{"expression":{"id":1825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9039:3:7","subExpression":{"id":1824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9039:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1826,"nodeType":"ExpressionStatement","src":"9039:3:7"},"nodeType":"ForStatement","src":"9015:1103:7"}]}}]},"documentation":{"id":1790,"nodeType":"StructuredDocumentation","src":"8585:195:7","text":"Removes asset manager for managing liquidity on platform\\n@param  _platform   address of market making platform\\n@param  _manager    address of asset manager"},"functionSelector":"f85771b2","id":1972,"implemented":true,"kind":"function","modifiers":[{"id":1797,"modifierName":{"id":1796,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"8855:9:7"},"nodeType":"ModifierInvocation","src":"8855:9:7"}],"name":"removeManager","nodeType":"FunctionDefinition","parameters":{"id":1795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1792,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":1972,"src":"8809:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1791,"name":"address","nodeType":"ElementaryTypeName","src":"8809:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1794,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":1972,"src":"8828:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1793,"name":"address","nodeType":"ElementaryTypeName","src":"8828:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8808:37:7"},"returnParameters":{"id":1798,"nodeType":"ParameterList","parameters":[],"src":"8865:0:7"},"scope":3398,"src":"8786:1350:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1987,"nodeType":"Block","src":"10366:45:7","statements":[{"expression":{"baseExpression":{"id":1983,"name":"managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"10384:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":1985,"indexExpression":{"id":1984,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"10393:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10384:19:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":1982,"id":1986,"nodeType":"Return","src":"10377:26:7"}]},"documentation":{"id":1973,"nodeType":"StructuredDocumentation","src":"10144:127:7","text":"Gets asset managers for managing liquidity\\n@param  _platform   address of market making platform"},"functionSelector":"33060226","id":1988,"implemented":true,"kind":"function","modifiers":[{"id":1978,"modifierName":{"id":1977,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"10331:9:7"},"nodeType":"ModifierInvocation","src":"10331:9:7"}],"name":"getManagers","nodeType":"FunctionDefinition","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1975,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":1988,"src":"10298:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1974,"name":"address","nodeType":"ElementaryTypeName","src":"10298:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10297:19:7"},"returnParameters":{"id":1982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1981,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1988,"src":"10349:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1979,"name":"address","nodeType":"ElementaryTypeName","src":"10349:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1980,"nodeType":"ArrayTypeName","src":"10349:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10348:18:7"},"scope":3398,"src":"10277:134:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2040,"nodeType":"Block","src":"10471:301:7","statements":[{"assignments":[1994],"declarations":[{"constant":false,"id":1994,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":2040,"src":"10482:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1993,"name":"bool","nodeType":"ElementaryTypeName","src":"10482:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1996,"initialValue":{"hexValue":"66616c7365","id":1995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10495:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"10482:18:7"},{"assignments":[1998],"declarations":[{"constant":false,"id":1998,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":2040,"src":"10511:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1997,"name":"uint","nodeType":"ElementaryTypeName","src":"10511:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2001,"initialValue":{"expression":{"id":1999,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"10525:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10525:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10511:27:7"},{"body":{"id":2028,"nodeType":"Block","src":"10580:120:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2012,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"10598:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2014,"indexExpression":{"id":2013,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"10608:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10598:19:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2019,"indexExpression":{"expression":{"baseExpression":{"id":2015,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"10618:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_token_$3587_storage_$dyn_storage","typeString":"struct ILiquidity.token storage ref[] storage ref"}},"id":2017,"indexExpression":{"id":2016,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"10625:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10618:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_token_$3587_storage","typeString":"struct ILiquidity.token storage ref"}},"id":2018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"10618:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10598:43:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"10598:55:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10656:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10598:59:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2027,"nodeType":"IfStatement","src":"10595:93:7","trueBody":{"expression":{"id":2025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2023,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1994,"src":"10676:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10684:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10676:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2026,"nodeType":"ExpressionStatement","src":"10676:12:7"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2006,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"10566:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2007,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1998,"src":"10568:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10566:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2029,"initializationExpression":{"assignments":[2003],"declarations":[{"constant":false,"id":2003,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":2029,"src":"10553:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2002,"name":"uint256","nodeType":"ElementaryTypeName","src":"10553:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2005,"initialValue":{"hexValue":"30","id":2004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10563:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10553:11:7"},"loopExpression":{"expression":{"id":2010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10576:3:7","subExpression":{"id":2009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"10576:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2011,"nodeType":"ExpressionStatement","src":"10576:3:7"},"nodeType":"ForStatement","src":"10549:151:7"},{"condition":{"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10713:6:7","subExpression":{"id":2030,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1994,"src":"10714:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2039,"nodeType":"IfStatement","src":"10710:55:7","trueBody":{"id":2038,"nodeType":"Block","src":"10720:45:7","statements":[{"expression":{"arguments":[{"id":2035,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"10744:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2032,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"10735:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"10735:8:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10735:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2037,"nodeType":"ExpressionStatement","src":"10735:18:7"}]}}]},"id":2041,"implemented":true,"kind":"function","modifiers":[],"name":"saveInvestor","nodeType":"FunctionDefinition","parameters":{"id":1991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1990,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":2041,"src":"10445:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1989,"name":"address","nodeType":"ElementaryTypeName","src":"10445:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10444:18:7"},"returnParameters":{"id":1992,"nodeType":"ParameterList","parameters":[],"src":"10471:0:7"},"scope":3398,"src":"10423:349:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2238,"nodeType":"Block","src":"10892:1403:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2045,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"10906:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10917:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10906:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2056,"nodeType":"IfStatement","src":"10903:98:7","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2049,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"10941:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":2050,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10953:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10953:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10941:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537562736372697074696f6e2077696e646f77206272656163686564","id":2053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10970:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""},"value":"Subscription window breached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""}],"id":2048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10933:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10933:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2055,"nodeType":"ExpressionStatement","src":"10933:68:7"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2058,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11045:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"11045:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11045:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5a65726f206574682073656e74","id":2062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11060:15:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb","typeString":"literal_string \\"Zero eth sent\\""},"value":"Zero eth sent"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb","typeString":"literal_string \\"Zero eth sent\\""}],"id":2057,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11037:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11037:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2064,"nodeType":"ExpressionStatement","src":"11037:39:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2066,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"11134:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11134:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11146:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"11134:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11153:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2065,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11126:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11126:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2072,"nodeType":"ExpressionStatement","src":"11126:54:7"},{"expression":{"arguments":[{"id":2077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11227:21:7","subExpression":{"baseExpression":{"id":2074,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"11228:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2076,"indexExpression":{"hexValue":"657468657272656365697074","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11233:14:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df0a7b8fc6ef41fb27a7f59b70c461675fea7bfde1166fd93082ded894ebd41","typeString":"literal_string \\"etherreceipt\\""},"value":"etherreceipt"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11228:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2061766f6964207265656e7472616e6379","id":2078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11250:28:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceaa3b02d373c2ad73562e084b288c6a1deb5ca6fad548fa2aff492271ebb58d","typeString":"literal_string \\"Locked to avoid reentrancy\\""},"value":"Locked to avoid reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ceaa3b02d373c2ad73562e084b288c6a1deb5ca6fad548fa2aff492271ebb58d","typeString":"literal_string \\"Locked to avoid reentrancy\\""}],"id":2073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11219:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11219:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2080,"nodeType":"ExpressionStatement","src":"11219:60:7"},{"expression":{"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2081,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"11290:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2083,"indexExpression":{"hexValue":"657468657272656365697074","id":2082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11295:14:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df0a7b8fc6ef41fb27a7f59b70c461675fea7bfde1166fd93082ded894ebd41","typeString":"literal_string \\"etherreceipt\\""},"value":"etherreceipt"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11290:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11313:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11290:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2086,"nodeType":"ExpressionStatement","src":"11290:27:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2087,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"11372:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2090,"indexExpression":{"expression":{"id":2088,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11382:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11382:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11372:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2095,"indexExpression":{"arguments":[{"hexValue":"307830","id":2093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11402:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11394:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2091,"name":"address","nodeType":"ElementaryTypeName","src":"11394:7:7","typeDescriptions":{}}},"id":2094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11394:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11372:35:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"11372:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11421:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11372:50:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2121,"nodeType":"IfStatement","src":"11369:277:7","trueBody":{"id":2120,"nodeType":"Block","src":"11423:223:7","statements":[{"assignments":[2103],"declarations":[{"constant":false,"id":2103,"mutability":"mutable","name":"lp","nodeType":"VariableDeclaration","scope":2120,"src":"11438:29:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider"},"typeName":{"id":2102,"nodeType":"UserDefinedTypeName","pathNode":{"id":2101,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"11438:19:7"},"referencedDeclaration":3592,"src":"11438:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"visibility":"internal"}],"id":2113,"initialValue":{"arguments":[{"arguments":[{"hexValue":"6574686572","id":2108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11531:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a","typeString":"literal_string \\"ether\\""},"value":"ether"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a","typeString":"literal_string \\"ether\\""}],"id":2107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11524:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2106,"name":"string","nodeType":"ElementaryTypeName","src":"11524:6:7","typeDescriptions":{}}},"id":2109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11524:15:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11575:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11575:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2104,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"11470:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"provider","nodeType":"MemberAccess","referencedDeclaration":3592,"src":"11470:19:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_provider_$3592_storage_ptr_$","typeString":"type(struct ILiquidity.provider storage pointer)"}},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["assetInvested","investorAddress"],"nodeType":"FunctionCall","src":"11470:131:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}},"nodeType":"VariableDeclarationStatement","src":"11438:163:7"},{"expression":{"arguments":[{"id":2117,"name":"lp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2103,"src":"11631:2:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}],"expression":{"id":2114,"name":"providers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"11616:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider storage ref[] storage ref"}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"11616:14:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_provider_$3592_storage_$returns$__$","typeString":"function (struct ILiquidity.provider storage ref)"}},"id":2118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11616:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2119,"nodeType":"ExpressionStatement","src":"11616:18:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2122,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"11659:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2125,"indexExpression":{"expression":{"id":2123,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11667:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11667:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11659:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11680:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11659:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2144,"nodeType":"IfStatement","src":"11656:120:7","trueBody":{"id":2143,"nodeType":"Block","src":"11682:94:7","statements":[{"expression":{"arguments":[{"expression":{"id":2131,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11706:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11706:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2128,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"11697:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"11697:8:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11697:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2134,"nodeType":"ExpressionStatement","src":"11697:20:7"},{"expression":{"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2135,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"11732:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2138,"indexExpression":{"expression":{"id":2136,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11740:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11740:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11732:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":2139,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"11754:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11754:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11732:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2142,"nodeType":"ExpressionStatement","src":"11732:32:7"}]}},{"expression":{"id":2170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2145,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"11786:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2152,"indexExpression":{"expression":{"id":2146,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11796:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11796:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11786:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2153,"indexExpression":{"arguments":[{"hexValue":"307830","id":2150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11816:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11808:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2148,"name":"address","nodeType":"ElementaryTypeName","src":"11808:7:7","typeDescriptions":{}}},"id":2151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11808:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11786:35:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"11786:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2157,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"11849:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2160,"indexExpression":{"expression":{"id":2158,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11859:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11859:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11849:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2165,"indexExpression":{"arguments":[{"hexValue":"307830","id":2163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11879:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11871:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2161,"name":"address","nodeType":"ElementaryTypeName","src":"11871:7:7","typeDescriptions":{}}},"id":2164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11871:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11849:35:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"11849:47:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2167,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11898:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"11898:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2155,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"11836:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"11836:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11836:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11786:122:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2171,"nodeType":"ExpressionStatement","src":"11786:122:7"},{"eventCall":{"arguments":[{"expression":{"id":2173,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11937:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11937:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"307830","id":2177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11949:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2175,"name":"address","nodeType":"ElementaryTypeName","src":"11949:7:7","typeDescriptions":{}}},"id":2178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11949:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2179,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11963:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"11963:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2181,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11974:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11974:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2172,"name":"RequestIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"11924:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11924:66:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2184,"nodeType":"EmitStatement","src":"11919:71:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2185,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"12004:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2190,"indexExpression":{"arguments":[{"hexValue":"307830","id":2188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12025:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12017:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2186,"name":"address","nodeType":"ElementaryTypeName","src":"12017:7:7","typeDescriptions":{}}},"id":2189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12017:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12004:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12032:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12004:29:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2231,"nodeType":"IfStatement","src":"12001:248:7","trueBody":{"id":2230,"nodeType":"Block","src":"12034:215:7","statements":[{"expression":{"arguments":[{"expression":{"id":2194,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"12060:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12060:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"307830","id":2198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12080:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12072:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2196,"name":"address","nodeType":"ElementaryTypeName","src":"12072:7:7","typeDescriptions":{}}},"id":2199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12072:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"12086:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"12086:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":2204,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"12116:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"12116:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":2206,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"12127:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2211,"indexExpression":{"arguments":[{"hexValue":"307830","id":2209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12148:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12140:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2207,"name":"address","nodeType":"ElementaryTypeName","src":"12140:7:7","typeDescriptions":{}}},"id":2210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12140:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12127:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2202,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"12097:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"12097:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12097:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2213,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"12156:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12156:7:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2193,"name":"issueVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2710,"src":"12049:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address)"}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12049:115:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2216,"nodeType":"ExpressionStatement","src":"12049:115:7"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"307830","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12204:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12196:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2218,"name":"address","nodeType":"ElementaryTypeName","src":"12196:7:7","typeDescriptions":{}}},"id":2221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12196:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":2222,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"12210:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2227,"indexExpression":{"arguments":[{"hexValue":"307830","id":2225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12231:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12223:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2223,"name":"address","nodeType":"ElementaryTypeName","src":"12223:7:7","typeDescriptions":{}}},"id":2226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12223:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12210:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2217,"name":"RequestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"12184:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12184:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2229,"nodeType":"EmitStatement","src":"12179:58:7"}]}},{"expression":{"id":2236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2232,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"12259:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2234,"indexExpression":{"hexValue":"657468657272656365697074","id":2233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12264:14:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4df0a7b8fc6ef41fb27a7f59b70c461675fea7bfde1166fd93082ded894ebd41","typeString":"literal_string \\"etherreceipt\\""},"value":"etherreceipt"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12259:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12282:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12259:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2237,"nodeType":"ExpressionStatement","src":"12259:28:7"}]},"documentation":{"id":2042,"nodeType":"StructuredDocumentation","src":"10780:80:7","text":"Receiver of ether invested in the Verified Liquidity token"},"id":2239,"implemented":true,"kind":"receive","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":2043,"nodeType":"ParameterList","parameters":[],"src":"10873:2:7"},"returnParameters":{"id":2044,"nodeType":"ParameterList","parameters":[],"src":"10892:0:7"},"scope":3398,"src":"10866:1429:7","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":2450,"nodeType":"Block","src":"12672:1639:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2247,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"12686:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12697:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12686:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2258,"nodeType":"IfStatement","src":"12683:98:7","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2251,"name":"timeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1229,"src":"12721:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":2252,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12733:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12733:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12721:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537562736372697074696f6e2077696e646f77206272656163686564","id":2255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12750:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""},"value":"Subscription window breached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc","typeString":"literal_string \\"Subscription window breached\\""}],"id":2250,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12713:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12713:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2257,"nodeType":"ExpressionStatement","src":"12713:68:7"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2260,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"12800:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12800:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12812:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12800:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12819:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12792:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12792:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2266,"nodeType":"ExpressionStatement","src":"12792:54:7"},{"assignments":[2268],"declarations":[{"constant":false,"id":2268,"mutability":"mutable","name":"found","nodeType":"VariableDeclaration","scope":2450,"src":"12857:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2267,"name":"bool","nodeType":"ElementaryTypeName","src":"12857:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2270,"initialValue":{"hexValue":"66616c7365","id":2269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12870:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"12857:18:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2271,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"12889:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2273,"indexExpression":{"id":2272,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"12900:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12889:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12908:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12889:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2280,"nodeType":"IfStatement","src":"12886:50:7","trueBody":{"expression":{"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2276,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"12924:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12932:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12924:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2279,"nodeType":"ExpressionStatement","src":"12924:12:7"}},{"condition":{"id":2281,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"12950:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2449,"nodeType":"IfStatement","src":"12947:1357:7","trueBody":{"id":2448,"nodeType":"Block","src":"12956:1348:7","statements":[{"expression":{"arguments":[{"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12979:12:7","subExpression":{"baseExpression":{"id":2283,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"12980:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2285,"indexExpression":{"hexValue":"627579","id":2284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12985:5:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc","typeString":"literal_string \\"buy\\""},"value":"buy"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12980:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e74207265656e7472616e6379","id":2287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12993:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""},"value":"Locked to prevent reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""}],"id":2282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12971:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12971:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2289,"nodeType":"ExpressionStatement","src":"12971:53:7"},{"expression":{"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2290,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"13039:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2292,"indexExpression":{"hexValue":"627579","id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13044:5:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc","typeString":"literal_string \\"buy\\""},"value":"buy"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13039:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13053:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13039:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2295,"nodeType":"ExpressionStatement","src":"13039:18:7"},{"condition":{"arguments":[{"expression":{"id":2300,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13103:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13103:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2304,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"13123:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}],"id":2303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13115:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2302,"name":"address","nodeType":"ElementaryTypeName","src":"13115:7:7","typeDescriptions":{}}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13115:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2306,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"13130:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2297,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13082:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2296,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"13075:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13075:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":800,"src":"13075:27:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":2307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13075:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2441,"nodeType":"IfStatement","src":"13072:1187:7","trueBody":{"id":2440,"nodeType":"Block","src":"13139:1120:7","statements":[{"eventCall":{"arguments":[{"expression":{"id":2309,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13176:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13176:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2311,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13188:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2312,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"13196:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2313,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13205:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13205:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2308,"name":"RequestIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"13163:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":2315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13163:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2316,"nodeType":"EmitStatement","src":"13158:63:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2317,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"13243:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2320,"indexExpression":{"expression":{"id":2318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13251:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13251:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13243:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13264:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13243:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2339,"nodeType":"IfStatement","src":"13240:144:7","trueBody":{"id":2338,"nodeType":"Block","src":"13266:118:7","statements":[{"expression":{"arguments":[{"expression":{"id":2326,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13298:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13298:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2323,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"13289:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"13289:8:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13289:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2329,"nodeType":"ExpressionStatement","src":"13289:20:7"},{"expression":{"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2330,"name":"LPIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"13332:7:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2333,"indexExpression":{"expression":{"id":2331,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13340:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13340:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13332:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":2334,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"13354:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13354:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13332:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2337,"nodeType":"ExpressionStatement","src":"13332:32:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2340,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13405:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2343,"indexExpression":{"expression":{"id":2341,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13415:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13415:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13405:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2345,"indexExpression":{"id":2344,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13427:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13405:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"13405:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13448:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13405:44:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2372,"nodeType":"IfStatement","src":"13402:324:7","trueBody":{"id":2371,"nodeType":"Block","src":"13450:276:7","statements":[{"assignments":[2353],"declarations":[{"constant":false,"id":2353,"mutability":"mutable","name":"lp","nodeType":"VariableDeclaration","scope":2371,"src":"13473:29:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider"},"typeName":{"id":2352,"nodeType":"UserDefinedTypeName","pathNode":{"id":2351,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"13473:19:7"},"referencedDeclaration":3592,"src":"13473:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"visibility":"internal"}],"id":2364,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2357,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13573:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2356,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"13567:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$741_$","typeString":"type(contract ERC20)"}},"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13567:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$741","typeString":"contract ERC20"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":250,"src":"13567:18:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13567:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2361,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13631:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13631:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2354,"name":"ILiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"13505:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILiquidity_$3772_$","typeString":"type(contract ILiquidity)"}},"id":2355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"provider","nodeType":"MemberAccess","referencedDeclaration":3592,"src":"13505:19:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_provider_$3592_storage_ptr_$","typeString":"type(struct ILiquidity.provider storage pointer)"}},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["assetInvested","investorAddress"],"nodeType":"FunctionCall","src":"13505:160:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}},"nodeType":"VariableDeclarationStatement","src":"13473:192:7"},{"expression":{"arguments":[{"id":2368,"name":"lp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"13703:2:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_provider_$3592_memory_ptr","typeString":"struct ILiquidity.provider memory"}],"expression":{"id":2365,"name":"providers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"13688:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider storage ref[] storage ref"}},"id":2367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"13688:14:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_provider_$3592_storage_$returns$__$","typeString":"function (struct ILiquidity.provider storage ref)"}},"id":2369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13688:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2370,"nodeType":"ExpressionStatement","src":"13688:18:7"}]}},{"expression":{"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2373,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13744:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2377,"indexExpression":{"expression":{"id":2374,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13754:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13754:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13744:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2378,"indexExpression":{"id":2376,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13766:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13744:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"13744:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2382,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13801:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2385,"indexExpression":{"expression":{"id":2383,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13811:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13811:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13801:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2387,"indexExpression":{"id":2386,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13823:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13801:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"13801:41:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2389,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"13844:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2380,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"13788:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"13788:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13788:64:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13744:108:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2392,"nodeType":"ExpressionStatement","src":"13744:108:7"},{"expression":{"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2393,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"13871:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2397,"indexExpression":{"expression":{"id":2394,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"13881:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13881:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2398,"indexExpression":{"id":2396,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13893:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:29:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"13871:42:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2400,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13916:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13871:51:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2402,"nodeType":"ExpressionStatement","src":"13871:51:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2403,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"13960:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2405,"indexExpression":{"id":2404,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"13973:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13960:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13982:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13960:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2439,"nodeType":"IfStatement","src":"13957:287:7","trueBody":{"id":2438,"nodeType":"Block","src":"13984:260:7","statements":[{"expression":{"arguments":[{"expression":{"id":2409,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"14018:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14018:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2411,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14030:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2412,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"14038:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2416,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"14075:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2419,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14113:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2418,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"14106:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14106:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":2417,"name":"_computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"14084:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC20_$819_$returns$_t_uint256_$","typeString":"function (contract IERC20) view returns (uint256)"}},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14084:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2415,"name":"_upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14066:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14066:56:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":2423,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"14124:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2425,"indexExpression":{"id":2424,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14137:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14124:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2413,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"14047:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"14047:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14047:98:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2427,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"14147:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14147:7:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2408,"name":"issueVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2710,"src":"14007:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address)"}},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14007:148:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2430,"nodeType":"ExpressionStatement","src":"14007:148:7"},{"eventCall":{"arguments":[{"id":2432,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14195:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":2433,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"14203:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2435,"indexExpression":{"id":2434,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2242,"src":"14216:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14203:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2431,"name":"RequestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"14183:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14183:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2437,"nodeType":"EmitStatement","src":"14178:46:7"}]}}]}},{"expression":{"id":2446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2442,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"14273:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2444,"indexExpression":{"hexValue":"627579","id":2443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14278:5:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc","typeString":"literal_string \\"buy\\""},"value":"buy"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14273:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14287:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"14273:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2447,"nodeType":"ExpressionStatement","src":"14273:19:7"}]}}]},"documentation":{"id":2240,"nodeType":"StructuredDocumentation","src":"12303:308:7","text":"Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \\n@param  _token  address of token used by investor to buy the VITTA\\n@param  _amount amount of token that is transferred from investor to this VITTA issuing contract\'s account for the investor"},"functionSelector":"cce7ec13","id":2451,"implemented":true,"kind":"function","modifiers":[],"name":"buy","nodeType":"FunctionDefinition","parameters":{"id":2245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2242,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2451,"src":"12630:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2241,"name":"address","nodeType":"ElementaryTypeName","src":"12630:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2244,"mutability":"mutable","name":"_amount","nodeType":"VariableDeclaration","scope":2451,"src":"12646:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2243,"name":"uint256","nodeType":"ElementaryTypeName","src":"12646:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12629:33:7"},"returnParameters":{"id":2246,"nodeType":"ParameterList","parameters":[],"src":"12672:0:7"},"scope":3398,"src":"12617:1694:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2463,"nodeType":"Block","src":"14458:35:7","statements":[{"expression":{"id":2461,"name":"providers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"14476:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage","typeString":"struct ILiquidity.provider storage ref[] storage ref"}},"functionReturnParameters":2460,"id":2462,"nodeType":"Return","src":"14469:16:7"}]},"documentation":{"id":2452,"nodeType":"StructuredDocumentation","src":"14319:48:7","text":"Fetches investors in VITTA"},"functionSelector":"b2f5a54c","id":2464,"implemented":true,"kind":"function","modifiers":[{"id":2455,"modifierName":{"id":2454,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"14411:9:7"},"nodeType":"ModifierInvocation","src":"14411:9:7"}],"name":"getInvestors","nodeType":"FunctionDefinition","parameters":{"id":2453,"nodeType":"ParameterList","parameters":[],"src":"14394:2:7"},"returnParameters":{"id":2460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2459,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2464,"src":"14429:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_memory_ptr_$dyn_memory_ptr","typeString":"struct ILiquidity.provider[]"},"typeName":{"baseType":{"id":2457,"nodeType":"UserDefinedTypeName","pathNode":{"id":2456,"name":"ILiquidity.provider","nodeType":"IdentifierPath","referencedDeclaration":3592,"src":"14429:19:7"},"referencedDeclaration":3592,"src":"14429:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_provider_$3592_storage_ptr","typeString":"struct ILiquidity.provider"}},"id":2458,"nodeType":"ArrayTypeName","src":"14429:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_provider_$3592_storage_$dyn_storage_ptr","typeString":"struct ILiquidity.provider[]"}},"visibility":"internal"}],"src":"14428:30:7"},"scope":3398,"src":"14373:120:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2484,"nodeType":"Block","src":"14799:68:7","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"id":2476,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"14818:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2478,"indexExpression":{"id":2477,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2467,"src":"14828:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14818:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2480,"indexExpression":{"id":2479,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2469,"src":"14839:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14818:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"14818:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2482,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14817:42:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2475,"id":2483,"nodeType":"Return","src":"14810:49:7"}]},"documentation":{"id":2465,"nodeType":"StructuredDocumentation","src":"14501:194:7","text":"Fetches investment detail for specific investor in VITTA\\n@param  _investor   address of investor\\n@param  _token      address of token invested by investor"},"functionSelector":"cac7495c","id":2485,"implemented":true,"kind":"function","modifiers":[{"id":2472,"modifierName":{"id":2471,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"14773:9:7"},"nodeType":"ModifierInvocation","src":"14773:9:7"}],"name":"getInvestment","nodeType":"FunctionDefinition","parameters":{"id":2470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2467,"mutability":"mutable","name":"_investor","nodeType":"VariableDeclaration","scope":2485,"src":"14724:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2466,"name":"address","nodeType":"ElementaryTypeName","src":"14724:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2469,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2485,"src":"14743:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2468,"name":"address","nodeType":"ElementaryTypeName","src":"14743:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14723:35:7"},"returnParameters":{"id":2475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2474,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2485,"src":"14791:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2473,"name":"uint256","nodeType":"ElementaryTypeName","src":"14791:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14790:9:7"},"scope":3398,"src":"14701:166:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2508,"nodeType":"Block","src":"15386:86:7","statements":[{"expression":{"arguments":[{"id":2500,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"15408:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2501,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2490,"src":"15419:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2502,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2492,"src":"15427:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2503,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2494,"src":"15441:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"15453:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"15453:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2499,"name":"issueVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2710,"src":"15397:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address)"}},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15397:67:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2507,"nodeType":"ExpressionStatement","src":"15397:67:7"}]},"documentation":{"id":2486,"nodeType":"StructuredDocumentation","src":"14879:390:7","text":"Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\\n@param  _investor       address of investor\\n@param  _token          address of token invested in VITTA\\n@param  _tokenAmount    amount of token invested in VITTA\\n@param  _LPToIssue      amount of VITTA to issue to investor "},"functionSelector":"ccc241c6","id":2509,"implemented":true,"kind":"function","modifiers":[{"id":2497,"modifierName":{"id":2496,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"15376:9:7"},"nodeType":"ModifierInvocation","src":"15376:9:7"}],"name":"issue","nodeType":"FunctionDefinition","parameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2488,"mutability":"mutable","name":"_investor","nodeType":"VariableDeclaration","scope":2509,"src":"15290:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2487,"name":"address","nodeType":"ElementaryTypeName","src":"15290:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2490,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2509,"src":"15309:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2489,"name":"address","nodeType":"ElementaryTypeName","src":"15309:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2492,"mutability":"mutable","name":"_tokenAmount","nodeType":"VariableDeclaration","scope":2509,"src":"15325:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2491,"name":"uint256","nodeType":"ElementaryTypeName","src":"15325:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2494,"mutability":"mutable","name":"_LPToIssue","nodeType":"VariableDeclaration","scope":2509,"src":"15347:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2493,"name":"uint256","nodeType":"ElementaryTypeName","src":"15347:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15289:77:7"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[],"src":"15386:0:7"},"scope":3398,"src":"15275:197:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2709,"nodeType":"Block","src":"15606:1686:7","statements":[{"expression":{"arguments":[{"id":2526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15625:14:7","subExpression":{"baseExpression":{"id":2523,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"15626:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2525,"indexExpression":{"hexValue":"6973737565","id":2524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15631:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a33d0fabbfddf3db8e1458550edc0ab7e061990c85809d25341eab0885973d7d","typeString":"literal_string \\"issue\\""},"value":"issue"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15626:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e742072656e656e7472616e6379","id":2527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15641:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""},"value":"Locked to prevent renentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""}],"id":2522,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15617:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15617:56:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2529,"nodeType":"ExpressionStatement","src":"15617:56:7"},{"expression":{"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2530,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"15684:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2532,"indexExpression":{"hexValue":"6973737565","id":2531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15689:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a33d0fabbfddf3db8e1458550edc0ab7e061990c85809d25341eab0885973d7d","typeString":"literal_string \\"issue\\""},"value":"issue"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15684:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15700:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15684:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2535,"nodeType":"ExpressionStatement","src":"15684:20:7"},{"expression":{"id":2552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":2536,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"15715:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2539,"indexExpression":{"id":2537,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"15725:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15715:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2540,"indexExpression":{"id":2538,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"15736:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15715:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"15715:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2544,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"15771:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2546,"indexExpression":{"id":2545,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"15781:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15771:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2548,"indexExpression":{"id":2547,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"15792:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15771:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAmount","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"15771:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2550,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"15813:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2542,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"15758:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"15758:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15758:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15715:111:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2553,"nodeType":"ExpressionStatement","src":"15715:111:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2554,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"15925:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2555,"name":"investmentCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"15938:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15925:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2557,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15924:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2558,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"15957:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2562,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"15990:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2561,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"15983:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15983:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":750,"src":"15983:25:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":2565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15983:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2566,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"16012:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2559,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"15970:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"15970:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15970:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15957:67:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15956:69:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15924:101:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2701,"nodeType":"Block","src":"16416:829:7","statements":[{"expression":{"arguments":[{"id":2609,"name":"_issuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"16458:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2610,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16467:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2611,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16478:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2606,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"16438:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2605,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"16431:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16431:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":800,"src":"16431:26:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16431:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2613,"nodeType":"ExpressionStatement","src":"16431:58:7"},{"expression":{"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2614,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"16506:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2617,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"16533:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2618,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16546:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2615,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"16520:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"16520:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16520:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16506:51:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2621,"nodeType":"ExpressionStatement","src":"16506:51:7"},{"expression":{"id":2632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2622,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"16576:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2624,"indexExpression":{"id":2623,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16583:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16576:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":2627,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"16609:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2629,"indexExpression":{"id":2628,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16616:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16609:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2630,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16628:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2625,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"16596:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"16596:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16596:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16576:63:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2633,"nodeType":"ExpressionStatement","src":"16576:63:7"},{"eventCall":{"arguments":[{"id":2635,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16671:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"baseExpression":{"id":2636,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16682:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2638,"indexExpression":{"id":2637,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16692:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16682:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2640,"indexExpression":{"id":2639,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16703:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16682:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16682:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2642,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"16725:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2643,"name":"_LPToIssue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2517,"src":"16739:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2634,"name":"IssuedVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1368,"src":"16659:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16659:91:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2645,"nodeType":"EmitStatement","src":"16654:96:7"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2646,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16768:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2648,"indexExpression":{"id":2647,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16778:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16768:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2650,"indexExpression":{"id":2649,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16789:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16768:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16768:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":2654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16819:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16811:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2652,"name":"address","nodeType":"ElementaryTypeName","src":"16811:7:7","typeDescriptions":{}}},"id":2655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16811:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16768:55:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"arguments":[{"id":2695,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"17203:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2696,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"17217:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2693,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"17184:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"17184:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17184:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2690,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"17165:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17157:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2688,"name":"address","nodeType":"ElementaryTypeName","src":"17157:8:7","stateMutability":"payable","typeDescriptions":{}}},"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17157:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","src":"17157:26:7","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17157:76:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2699,"nodeType":"ExpressionStatement","src":"17157:76:7"},"id":2700,"nodeType":"IfStatement","src":"16765:468:7","trueBody":{"expression":{"arguments":[{"id":2666,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"16957:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"arguments":[{"id":2671,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"17010:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2674,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"17053:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2673,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"17046:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17046:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":2672,"name":"_computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"17024:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC20_$819_$returns$_t_uint256_$","typeString":"function (contract IERC20) view returns (uint256)"}},"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17024:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2670,"name":"_upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"17001:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17001:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2678,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"17064:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2668,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"16982:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"16982:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16982:97:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":2682,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"17110:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2681,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"17103:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17103:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":2680,"name":"_computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"17081:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC20_$819_$returns$_t_uint256_$","typeString":"function (contract IERC20) view returns (uint256)"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17081:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2667,"name":"_downscaleDown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3380,"src":"16967:14:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16967:152:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2658,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16905:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2660,"indexExpression":{"id":2659,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16915:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16905:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2662,"indexExpression":{"id":2661,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16926:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16905:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16905:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2657,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"16898:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16898:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"16898:58:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16898:222:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2687,"nodeType":"ExpressionStatement","src":"16898:222:7"}}]},"id":2702,"nodeType":"IfStatement","src":"15921:1324:7","trueBody":{"id":2604,"nodeType":"Block","src":"16026:265:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":2571,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16044:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2573,"indexExpression":{"id":2572,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16054:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16044:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2575,"indexExpression":{"id":2574,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16065:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16044:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16044:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":2579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16095:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16087:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2577,"name":"address","nodeType":"ElementaryTypeName","src":"16087:7:7","typeDescriptions":{}}},"id":2580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16087:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16044:55:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"id":2600,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"16266:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2597,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16246:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16238:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2595,"name":"address","nodeType":"ElementaryTypeName","src":"16238:8:7","stateMutability":"payable","typeDescriptions":{}}},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16238:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","src":"16238:27:7","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16238:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2602,"nodeType":"ExpressionStatement","src":"16238:41:7"},"id":2603,"nodeType":"IfStatement","src":"16041:238:7","trueBody":{"expression":{"arguments":[{"id":2591,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16177:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2592,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2515,"src":"16188:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"id":2583,"name":"investors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"16125:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$_$","typeString":"mapping(address => mapping(address => struct Liquidity.investment storage ref))"}},"id":2585,"indexExpression":{"id":2584,"name":"_investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"16135:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16125:20:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_investment_$1243_storage_$","typeString":"mapping(address => struct Liquidity.investment storage ref)"}},"id":2587,"indexExpression":{"id":2586,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"16146:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16125:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_investment_$1243_storage","typeString":"struct Liquidity.investment storage ref"}},"id":2588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"16125:41:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2582,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"16118:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16118:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"16118:58:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16118:83:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2594,"nodeType":"ExpressionStatement","src":"16118:83:7"}}]}},{"expression":{"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2703,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"17263:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2705,"indexExpression":{"hexValue":"6973737565","id":2704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17268:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a33d0fabbfddf3db8e1458550edc0ab7e061990c85809d25341eab0885973d7d","typeString":"literal_string \\"issue\\""},"value":"issue"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17263:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17279:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17263:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2708,"nodeType":"ExpressionStatement","src":"17263:21:7"}]},"id":2710,"implemented":true,"kind":"function","modifiers":[],"name":"issueVitta","nodeType":"FunctionDefinition","parameters":{"id":2520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2511,"mutability":"mutable","name":"_investor","nodeType":"VariableDeclaration","scope":2710,"src":"15504:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2510,"name":"address","nodeType":"ElementaryTypeName","src":"15504:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2513,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2710,"src":"15523:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2512,"name":"address","nodeType":"ElementaryTypeName","src":"15523:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2515,"mutability":"mutable","name":"_tokenAmount","nodeType":"VariableDeclaration","scope":2710,"src":"15539:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2514,"name":"uint256","nodeType":"ElementaryTypeName","src":"15539:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2517,"mutability":"mutable","name":"_LPToIssue","nodeType":"VariableDeclaration","scope":2710,"src":"15561:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2516,"name":"uint256","nodeType":"ElementaryTypeName","src":"15561:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2519,"mutability":"mutable","name":"_issuer","nodeType":"VariableDeclaration","scope":2710,"src":"15581:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2518,"name":"address","nodeType":"ElementaryTypeName","src":"15581:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15503:94:7"},"returnParameters":{"id":2521,"nodeType":"ParameterList","parameters":[],"src":"15606:0:7"},"scope":3398,"src":"15484:1808:7","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2852,"nodeType":"Block","src":"17978:1066:7","statements":[{"expression":{"arguments":[{"id":2730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17997:18:7","subExpression":{"baseExpression":{"id":2727,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"17998:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2729,"indexExpression":{"hexValue":"6c6971756964697479","id":2728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18003:11:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7d9f8cddc6f064ba72d0e3c1e53eb67867dd8506fa4f5d61c86189caca8ee5","typeString":"literal_string \\"liquidity\\""},"value":"liquidity"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17998:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e74207265656e7472616e6379","id":2731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18017:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""},"value":"Locked to prevent reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""}],"id":2726,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17989:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17989:59:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2733,"nodeType":"ExpressionStatement","src":"17989:59:7"},{"expression":{"id":2738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2734,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"18059:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2736,"indexExpression":{"hexValue":"6c6971756964697479","id":2735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18064:11:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7d9f8cddc6f064ba72d0e3c1e53eb67867dd8506fa4f5d61c86189caca8ee5","typeString":"literal_string \\"liquidity\\""},"value":"liquidity"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18059:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18079:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18059:24:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2739,"nodeType":"ExpressionStatement","src":"18059:24:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2741,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"18102:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18102:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18114:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"18102:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18121:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18094:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18094:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2747,"nodeType":"ExpressionStatement","src":"18094:54:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":2749,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"18167:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2751,"indexExpression":{"id":2750,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18180:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18167:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2753,"indexExpression":{"id":2752,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18191:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18167:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18202:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18167:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d616e6167657220646f6573206e6f74206578697374","id":2756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18205:24:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4","typeString":"literal_string \\"Manager does not exist\\""},"value":"Manager does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4","typeString":"literal_string \\"Manager does not exist\\""}],"id":2748,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18159:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18159:71:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2758,"nodeType":"ExpressionStatement","src":"18159:71:7"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2759,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18306:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":2762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18322:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18314:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2760,"name":"address","nodeType":"ElementaryTypeName","src":"18314:7:7","typeDescriptions":{}}},"id":2763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18314:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18306:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"arguments":[{"id":2779,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18473:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2776,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18457:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18449:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2774,"name":"address","nodeType":"ElementaryTypeName","src":"18449:8:7","stateMutability":"payable","typeDescriptions":{}}},"id":2777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18449:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"send","nodeType":"MemberAccess","src":"18449:23:7","typeDescriptions":{"typeIdentifier":"t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18449:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":2781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18488:17:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \\"Transfer failed\\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \\"Transfer failed\\""}],"id":2773,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18441:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18441:65:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2783,"nodeType":"ExpressionStatement","src":"18441:65:7"},"id":2784,"nodeType":"IfStatement","src":"18303:203:7","trueBody":{"expression":{"arguments":[{"id":2769,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18377:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2770,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18388:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2766,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18360:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2765,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"18353:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":2767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18353:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":2768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"18353:23:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18353:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2772,"nodeType":"ExpressionStatement","src":"18353:48:7"}},{"expression":{"arguments":[{"id":2789,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18551:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2790,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18565:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2791,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18573:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":2786,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18534:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2785,"name":"IMarketMaker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3998,"src":"18521:12:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMarketMaker_$3998_$","typeString":"type(contract IMarketMaker)"}},"id":2787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18521:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMarketMaker_$3998","typeString":"contract IMarketMaker"}},"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":3974,"src":"18521:29:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address) external"}},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18521:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2793,"nodeType":"ExpressionStatement","src":"18521:61:7"},{"eventCall":{"arguments":[{"id":2795,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18616:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2796,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18627:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2797,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"18637:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2798,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18649:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2799,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18657:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2794,"name":"PlatformLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"18598:17:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,address,uint256)"}},"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18598:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2801,"nodeType":"EmitStatement","src":"18593:77:7"},{"expression":{"id":2814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":2802,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"18681:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2804,"indexExpression":{"id":2803,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18693:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18681:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18681:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":2808,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"18737:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2810,"indexExpression":{"id":2809,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18749:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18737:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18737:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2812,"name":"_liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"18779:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2806,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"18724:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"18724:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18724:66:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18681:109:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2815,"nodeType":"ExpressionStatement","src":"18681:109:7"},{"assignments":[2817],"declarations":[{"constant":false,"id":2817,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":2852,"src":"18801:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2816,"name":"uint256","nodeType":"ElementaryTypeName","src":"18801:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2823,"initialValue":{"baseExpression":{"baseExpression":{"id":2818,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"18817:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2820,"indexExpression":{"id":2819,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18830:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18817:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2822,"indexExpression":{"id":2821,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"18841:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18817:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18801:49:7"},{"expression":{"id":2844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2824,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"18861:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2828,"indexExpression":{"id":2825,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18872:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18861:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2829,"indexExpression":{"id":2826,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18883:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18861:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2830,"indexExpression":{"id":2827,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2817,"src":"18891:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18861:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18861:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2834,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"18931:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2836,"indexExpression":{"id":2835,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"18942:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18931:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2838,"indexExpression":{"id":2837,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"18953:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18931:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2840,"indexExpression":{"id":2839,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2817,"src":"18961:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18931:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"18931:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2842,"name":"_tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"18987:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2832,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"18918:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"18918:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18918:82:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18861:139:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2845,"nodeType":"ExpressionStatement","src":"18861:139:7"},{"expression":{"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2846,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"19011:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2848,"indexExpression":{"hexValue":"6c6971756964697479","id":2847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19016:11:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7d9f8cddc6f064ba72d0e3c1e53eb67867dd8506fa4f5d61c86189caca8ee5","typeString":"literal_string \\"liquidity\\""},"value":"liquidity"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19011:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19031:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"19011:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2851,"nodeType":"ExpressionStatement","src":"19011:25:7"}]},"documentation":{"id":2711,"nodeType":"StructuredDocumentation","src":"17304:524:7","text":"Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \\n@param  _platform   address of platform on which liquidity has to be provided\\n@param  _manager    address of asset manager to whom liquidity has to be provided\\n@param  _liquidity  amount of VITTA tokens to allot to an asset manager\\n@param  _token      address of token allotted to asset manager\\n@param  _tokenAmount    amount of token allotted to asset manager"},"functionSelector":"cb7c4c55","id":2853,"implemented":true,"kind":"function","modifiers":[{"id":2724,"modifierName":{"id":2723,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"17968:9:7"},"nodeType":"ModifierInvocation","src":"17968:9:7"}],"name":"provideLiquidity","nodeType":"FunctionDefinition","parameters":{"id":2722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2713,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":2853,"src":"17864:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2712,"name":"address","nodeType":"ElementaryTypeName","src":"17864:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2715,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":2853,"src":"17883:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2714,"name":"address","nodeType":"ElementaryTypeName","src":"17883:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2717,"mutability":"mutable","name":"_liquidity","nodeType":"VariableDeclaration","scope":2853,"src":"17901:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2716,"name":"uint256","nodeType":"ElementaryTypeName","src":"17901:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2719,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2853,"src":"17921:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2718,"name":"address","nodeType":"ElementaryTypeName","src":"17921:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2721,"mutability":"mutable","name":"_tokenAmount","nodeType":"VariableDeclaration","scope":2853,"src":"17937:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2720,"name":"uint256","nodeType":"ElementaryTypeName","src":"17937:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17863:95:7"},"returnParameters":{"id":2725,"nodeType":"ParameterList","parameters":[],"src":"17978:0:7"},"scope":3398,"src":"17838:1206:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2960,"nodeType":"Block","src":"19543:719:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2864,"name":"platformIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"19562:13:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2867,"indexExpression":{"expression":{"id":2865,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"19576:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19576:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19562:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19588:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19562:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c697175696469747920706f6f6c20646f6573206e6f74206578697374","id":2870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19591:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7488aed9efb581ec025bbf34f5cf87ffa2431375dd8982219b303742d3d79ce","typeString":"literal_string \\"Liquidity pool does not exist\\""},"value":"Liquidity pool does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a7488aed9efb581ec025bbf34f5cf87ffa2431375dd8982219b303742d3d79ce","typeString":"literal_string \\"Liquidity pool does not exist\\""}],"id":2863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19554:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19554:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2872,"nodeType":"ExpressionStatement","src":"19554:69:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2874,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"19642:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2876,"indexExpression":{"id":2875,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"19653:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19642:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19661:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19642:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e737570706f7274656420746f6b656e","id":2879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19664:19:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_35557054842e6bac2d5677ccc2aeb32b43981809d9c333559406d70b18885a3e","typeString":"literal_string \\"Unsupported token\\""},"value":"Unsupported token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_35557054842e6bac2d5677ccc2aeb32b43981809d9c333559406d70b18885a3e","typeString":"literal_string \\"Unsupported token\\""}],"id":2873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19634:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19634:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2881,"nodeType":"ExpressionStatement","src":"19634:50:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2883,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"19703:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19703:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":2885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19715:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"19703:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e747261637420696e20706175736564207374617465","id":2887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19722:26:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""},"value":"Contract in paused state"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421","typeString":"literal_string \\"Contract in paused state\\""}],"id":2882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19695:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19695:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2889,"nodeType":"ExpressionStatement","src":"19695:54:7"},{"expression":{"arguments":[{"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19768:19:7","subExpression":{"baseExpression":{"id":2891,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"19769:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2893,"indexExpression":{"hexValue":"64697374726962757465","id":2892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19774:12:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_67f5ee3ea5f89bb62c6dbf9e6a46fac86b15fc7c224cb0f88a13f89aeded9e1f","typeString":"literal_string \\"distribute\\""},"value":"distribute"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19769:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e74207265656e7472616e6379","id":2895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19789:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""},"value":"Locked to prevent reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c42bc6bc53a2bf042cf9b1518200124dbeebb8bd3c50325e068b430527e41fef","typeString":"literal_string \\"Locked to prevent reentrancy\\""}],"id":2890,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19760:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19760:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2897,"nodeType":"ExpressionStatement","src":"19760:60:7"},{"expression":{"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2898,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"19831:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2900,"indexExpression":{"hexValue":"64697374726962757465","id":2899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19836:12:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_67f5ee3ea5f89bb62c6dbf9e6a46fac86b15fc7c224cb0f88a13f89aeded9e1f","typeString":"literal_string \\"distribute\\""},"value":"distribute"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19831:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19852:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19831:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2903,"nodeType":"ExpressionStatement","src":"19831:25:7"},{"assignments":[2905],"declarations":[{"constant":false,"id":2905,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":2960,"src":"19867:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2904,"name":"uint256","nodeType":"ElementaryTypeName","src":"19867:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2912,"initialValue":{"baseExpression":{"baseExpression":{"id":2906,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"19883:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":2909,"indexExpression":{"expression":{"id":2907,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"19896:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19896:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19883:24:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2911,"indexExpression":{"id":2910,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"19908:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19883:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19867:50:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2913,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"19931:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19944:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19931:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2916,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"19949:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19956:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19949:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19931:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2953,"nodeType":"IfStatement","src":"19928:290:7","trueBody":{"id":2952,"nodeType":"Block","src":"19958:260:7","statements":[{"expression":{"id":2942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2920,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"19985:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2925,"indexExpression":{"expression":{"id":2921,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"19996:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"19996:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19985:22:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2926,"indexExpression":{"id":2923,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"20008:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19985:30:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2927,"indexExpression":{"id":2924,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"20016:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19985:37:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"19985:55:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":2931,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"20056:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":2934,"indexExpression":{"expression":{"id":2932,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"20067:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20067:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20056:22:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":2936,"indexExpression":{"id":2935,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"20079:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20056:30:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":2938,"indexExpression":{"id":2937,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"20087:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20056:37:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"20056:55:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2940,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"20113:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2929,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"20043:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"20043:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20043:84:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19985:142:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2943,"nodeType":"ExpressionStatement","src":"19985:142:7"},{"eventCall":{"arguments":[{"expression":{"id":2945,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"20162:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"20162:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2947,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"20174:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2948,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"20184:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2949,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"20192:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2944,"name":"ManagerReturns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"20147:14:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20147:59:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2951,"nodeType":"EmitStatement","src":"20142:64:7"}]}},{"expression":{"id":2958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2954,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"20228:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2956,"indexExpression":{"hexValue":"64697374726962757465","id":2955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20233:12:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_67f5ee3ea5f89bb62c6dbf9e6a46fac86b15fc7c224cb0f88a13f89aeded9e1f","typeString":"literal_string \\"distribute\\""},"value":"distribute"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20228:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20249:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"20228:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2959,"nodeType":"ExpressionStatement","src":"20228:26:7"}]},"documentation":{"id":2854,"nodeType":"StructuredDocumentation","src":"19052:399:7","text":"Pay out of income by Market maker contracts to VITTA Liquidity providers\\n@param  _distribution   amount of VITTA to mint and distribute pro rata to liquidity providers\\n@param  _token          address of token in which distribution is made by market maker    \\n@param  _manager        address of asset manager earning the paid out return on investment "},"functionSelector":"451353f1","id":2961,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nodeType":"FunctionDefinition","parameters":{"id":2861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2856,"mutability":"mutable","name":"_distribution","nodeType":"VariableDeclaration","scope":2961,"src":"19477:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2855,"name":"uint256","nodeType":"ElementaryTypeName","src":"19477:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2858,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":2961,"src":"19500:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2857,"name":"address","nodeType":"ElementaryTypeName","src":"19500:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2860,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":2961,"src":"19516:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2859,"name":"address","nodeType":"ElementaryTypeName","src":"19516:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19476:57:7"},"returnParameters":{"id":2862,"nodeType":"ParameterList","parameters":[],"src":"19543:0:7"},"scope":3398,"src":"19457:805:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2983,"nodeType":"Block","src":"20649:198:7","statements":[{"expression":{"components":[{"expression":{"baseExpression":{"id":2973,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"20756:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2975,"indexExpression":{"id":2974,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2964,"src":"20768:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20756:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"20756:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":2977,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"20798:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":2979,"indexExpression":{"id":2978,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2964,"src":"20810:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20798:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":2980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"20798:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2981,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20755:84:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":2972,"id":2982,"nodeType":"Return","src":"20748:91:7"}]},"documentation":{"id":2962,"nodeType":"StructuredDocumentation","src":"20270:132:7","text":"Fetches performance of market platform platform\\n@param  _platform   address of market making platform"},"functionSelector":"24ef84ec","id":2984,"implemented":true,"kind":"function","modifiers":[{"id":2967,"modifierName":{"id":2966,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"20473:9:7"},"nodeType":"ModifierInvocation","src":"20473:9:7"}],"name":"getPlatformPerformance","nodeType":"FunctionDefinition","parameters":{"id":2965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2964,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":2984,"src":"20440:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2963,"name":"address","nodeType":"ElementaryTypeName","src":"20440:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20439:19:7"},"returnParameters":{"id":2972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2969,"mutability":"mutable","name":"platformLiquidityProvided","nodeType":"VariableDeclaration","scope":2984,"src":"20491:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2968,"name":"uint256","nodeType":"ElementaryTypeName","src":"20491:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2971,"mutability":"mutable","name":"platformCommissionsEarned","nodeType":"VariableDeclaration","scope":2984,"src":"20615:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2970,"name":"uint256","nodeType":"ElementaryTypeName","src":"20615:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20490:159:7"},"scope":3398,"src":"20408:439:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3026,"nodeType":"Block","src":"21349:278:7","statements":[{"assignments":[3001],"declarations":[{"constant":false,"id":3001,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":3026,"src":"21360:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3000,"name":"uint256","nodeType":"ElementaryTypeName","src":"21360:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3007,"initialValue":{"baseExpression":{"baseExpression":{"id":3002,"name":"managerIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"21376:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3004,"indexExpression":{"id":3003,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"21389:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21376:23:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3006,"indexExpression":{"id":3005,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2991,"src":"21400:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21376:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21360:49:7"},{"expression":{"components":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":3008,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"21508:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":3010,"indexExpression":{"id":3009,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"21519:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21508:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":3012,"indexExpression":{"id":3011,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2989,"src":"21530:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21508:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":3014,"indexExpression":{"id":3013,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"21538:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21508:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"liquidityProvided","nodeType":"MemberAccess","referencedDeclaration":1245,"src":"21508:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":3016,"name":"managerRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"21564:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => struct Liquidity.performance storage ref)))"}},"id":3018,"indexExpression":{"id":3017,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"21575:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21564:21:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct Liquidity.performance storage ref))"}},"id":3020,"indexExpression":{"id":3019,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2989,"src":"21586:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21564:29:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(uint256 => struct Liquidity.performance storage ref)"}},"id":3022,"indexExpression":{"id":3021,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"21594:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21564:36:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"21564:54:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21507:112:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":2999,"id":3025,"nodeType":"Return","src":"21500:119:7"}]},"documentation":{"id":2985,"nodeType":"StructuredDocumentation","src":"20855:220:7","text":"Fetches performance of asset managers\\n@param  _platform   address of platform\\n@param  _token      address of token\\n@param  _manager    address of asset manager on platform"},"functionSelector":"56abb19b","id":3027,"implemented":true,"kind":"function","modifiers":[{"id":2994,"modifierName":{"id":2993,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"21179:9:7"},"nodeType":"ModifierInvocation","src":"21179:9:7"}],"name":"getManagerPerformance","nodeType":"FunctionDefinition","parameters":{"id":2992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2987,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":3027,"src":"21112:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2986,"name":"address","nodeType":"ElementaryTypeName","src":"21112:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2989,"mutability":"mutable","name":"_token","nodeType":"VariableDeclaration","scope":3027,"src":"21131:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2988,"name":"address","nodeType":"ElementaryTypeName","src":"21131:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2991,"mutability":"mutable","name":"_manager","nodeType":"VariableDeclaration","scope":3027,"src":"21147:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2990,"name":"address","nodeType":"ElementaryTypeName","src":"21147:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21111:53:7"},"returnParameters":{"id":2999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2996,"mutability":"mutable","name":"managerLiquidityProvided","nodeType":"VariableDeclaration","scope":3027,"src":"21197:32:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2995,"name":"uint256","nodeType":"ElementaryTypeName","src":"21197:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2998,"mutability":"mutable","name":"managerCommissionsEarned","nodeType":"VariableDeclaration","scope":3027,"src":"21316:32:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2997,"name":"uint256","nodeType":"ElementaryTypeName","src":"21316:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21196:153:7"},"scope":3398,"src":"21081:546:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3170,"nodeType":"Block","src":"22013:936:7","statements":[{"expression":{"arguments":[{"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22032:15:7","subExpression":{"baseExpression":{"id":3038,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"22033:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3040,"indexExpression":{"hexValue":"7061796f7574","id":3039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22038:8:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d97eead40bf4be1ae9c53f578e0af8ec49bd23127c8790825f86522d1d35f1a3","typeString":"literal_string \\"payout\\""},"value":"payout"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22033:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f636b656420746f2070726576656e742072656e656e7472616e6379","id":3042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22049:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""},"value":"Locked to prevent renentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_268811931cab92df2caa626802cdf08aff647804845e45b981f0d1daef50252b","typeString":"literal_string \\"Locked to prevent renentrancy\\""}],"id":3037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"22024:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22024:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3044,"nodeType":"ExpressionStatement","src":"22024:57:7"},{"expression":{"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3045,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"22092:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3047,"indexExpression":{"hexValue":"7061796f7574","id":3046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22097:8:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d97eead40bf4be1ae9c53f578e0af8ec49bd23127c8790825f86522d1d35f1a3","typeString":"literal_string \\"payout\\""},"value":"payout"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22092:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22109:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"22092:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3050,"nodeType":"ExpressionStatement","src":"22092:21:7"},{"expression":{"arguments":[{"arguments":[{"id":3057,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"22151:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Liquidity_$3398","typeString":"contract Liquidity"}],"id":3056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22143:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3055,"name":"address","nodeType":"ElementaryTypeName","src":"22143:7:7","typeDescriptions":{}}},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22143:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3059,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22158:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3052,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22131:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3051,"name":"IVitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4008,"src":"22124:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVitta_$4008_$","typeString":"type(contract IVitta)"}},"id":3053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22124:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVitta_$4008","typeString":"contract IVitta"}},"id":3054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":4007,"src":"22124:18:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":3060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22124:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3061,"nodeType":"ExpressionStatement","src":"22124:48:7"},{"expression":{"id":3074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":3062,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"22183:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":3064,"indexExpression":{"id":3063,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22195:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22183:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"22183:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":3068,"name":"platformRoi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"22239:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_performance_$1248_storage_$","typeString":"mapping(address => struct Liquidity.performance storage ref)"}},"id":3070,"indexExpression":{"id":3069,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22251:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22239:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_performance_$1248_storage","typeString":"struct Liquidity.performance storage ref"}},"id":3071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"commissionsEarned","nodeType":"MemberAccess","referencedDeclaration":1247,"src":"22239:40:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3072,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22281:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3066,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"22226:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"22226:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22226:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22183:112:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3075,"nodeType":"ExpressionStatement","src":"22183:112:7"},{"eventCall":{"arguments":[{"id":3077,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22327:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3078,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22338:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3079,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22345:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3076,"name":"PlatformReturns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1398,"src":"22311:15:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22311:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3081,"nodeType":"EmitStatement","src":"22306:53:7"},{"assignments":[3083],"declarations":[{"constant":false,"id":3083,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":3170,"src":"22370:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3082,"name":"uint","nodeType":"ElementaryTypeName","src":"22370:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3086,"initialValue":{"expression":{"id":3084,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22384:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"22384:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22370:24:7"},{"assignments":[3088],"declarations":[{"constant":false,"id":3088,"mutability":"mutable","name":"issued","nodeType":"VariableDeclaration","scope":3170,"src":"22405:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3087,"name":"uint","nodeType":"ElementaryTypeName","src":"22405:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3090,"initialValue":{"id":3089,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"22419:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22405:25:7"},{"body":{"id":3162,"nodeType":"Block","src":"22469:440:7","statements":[{"assignments":[3102],"declarations":[{"constant":false,"id":3102,"mutability":"mutable","name":"prorataStake","nodeType":"VariableDeclaration","scope":3162,"src":"22484:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3101,"name":"uint256","nodeType":"ElementaryTypeName","src":"22484:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3116,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"id":3107,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"22545:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3111,"indexExpression":{"baseExpression":{"id":3108,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22552:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3110,"indexExpression":{"id":3109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22556:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22552:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22545:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3112,"name":"issued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3088,"src":"22561:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3105,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"22526:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"divDown","nodeType":"MemberAccess","referencedDeclaration":4767,"src":"22526:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22526:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3114,"name":"_distribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3030,"src":"22570:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3103,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"22507:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"22507:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22507:77:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22484:100:7"},{"expression":{"arguments":[{"baseExpression":{"id":3121,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22622:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3123,"indexExpression":{"id":3122,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22626:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22622:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3124,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22630:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3118,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22606:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3117,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"22599:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":3119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22599:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":3120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":768,"src":"22599:22:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":3125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22599:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3126,"nodeType":"ExpressionStatement","src":"22599:44:7"},{"eventCall":{"arguments":[{"id":3128,"name":"_platform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"22682:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":3129,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22693:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3131,"indexExpression":{"id":3130,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22697:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22693:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3132,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"22701:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3133,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22708:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3134,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"22722:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22722:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3127,"name":"InvestorReturns","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1410,"src":"22666:15:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22666:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3137,"nodeType":"EmitStatement","src":"22661:77:7"},{"expression":{"id":3144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3138,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"22753:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3141,"name":"totalIssued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"22780:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3142,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22793:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3139,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"22767:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"22767:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22767:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22753:53:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3145,"nodeType":"ExpressionStatement","src":"22753:53:7"},{"expression":{"id":3160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3146,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"22825:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3150,"indexExpression":{"baseExpression":{"id":3147,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22832:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3149,"indexExpression":{"id":3148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22836:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22832:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22825:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3153,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"22855:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3157,"indexExpression":{"baseExpression":{"id":3154,"name":"LPs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"22862:3:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":3156,"indexExpression":{"id":3155,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22866:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22862:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22855:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3158,"name":"prorataStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3102,"src":"22871:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3151,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"22842:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"22842:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22842:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22825:59:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3161,"nodeType":"ExpressionStatement","src":"22825:59:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22455:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3096,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"22457:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22455:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3163,"initializationExpression":{"assignments":[3092],"declarations":[{"constant":false,"id":3092,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":3163,"src":"22445:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3091,"name":"uint","nodeType":"ElementaryTypeName","src":"22445:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3094,"initialValue":{"hexValue":"30","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22452:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22445:8:7"},"loopExpression":{"expression":{"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22465:3:7","subExpression":{"id":3098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"22465:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3100,"nodeType":"ExpressionStatement","src":"22465:3:7"},"nodeType":"ForStatement","src":"22441:468:7"},{"expression":{"id":3168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3164,"name":"lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"22919:4:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3166,"indexExpression":{"hexValue":"7061796f7574","id":3165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22924:8:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d97eead40bf4be1ae9c53f578e0af8ec49bd23127c8790825f86522d1d35f1a3","typeString":"literal_string \\"payout\\""},"value":"payout"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22919:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22936:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"22919:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3169,"nodeType":"ExpressionStatement","src":"22919:22:7"}]},"documentation":{"id":3028,"nodeType":"StructuredDocumentation","src":"21639:291:7","text":"Pay out income to VITTA Liquidity providers\\n@param  _distribution   amount of VITTA to mint and distribute pro rata to liquidity providers   \\n@param  _platform       address of platform on which commission is earned based on which distribution is made"},"functionSelector":"05061616","id":3171,"implemented":true,"kind":"function","modifiers":[{"id":3035,"modifierName":{"id":3034,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"21994:9:7"},"nodeType":"ModifierInvocation","src":"21994:9:7"}],"name":"payOut","nodeType":"FunctionDefinition","parameters":{"id":3033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3030,"mutability":"mutable","name":"_distribution","nodeType":"VariableDeclaration","scope":3171,"src":"21952:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3029,"name":"uint256","nodeType":"ElementaryTypeName","src":"21952:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3032,"mutability":"mutable","name":"_platform","nodeType":"VariableDeclaration","scope":3171,"src":"21975:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3031,"name":"address","nodeType":"ElementaryTypeName","src":"21975:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21951:42:7"},"returnParameters":{"id":3036,"nodeType":"ParameterList","parameters":[],"src":"22013:0:7"},"scope":3398,"src":"21936:1013:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3185,"nodeType":"Block","src":"23038:59:7","statements":[{"expression":{"arguments":[{"id":3182,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"23080:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":3179,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"23063:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3178,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"23056:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$819_$","typeString":"type(contract IERC20)"}},"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23056:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":3181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":758,"src":"23056:23:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23056:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3177,"id":3184,"nodeType":"Return","src":"23049:40:7"}]},"functionSelector":"e3d670d7","id":3186,"implemented":true,"kind":"function","modifiers":[],"name":"balance","nodeType":"FunctionDefinition","parameters":{"id":3174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3173,"mutability":"mutable","name":"investor","nodeType":"VariableDeclaration","scope":3186,"src":"22974:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3172,"name":"address","nodeType":"ElementaryTypeName","src":"22974:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22973:18:7"},"returnParameters":{"id":3177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3176,"mutability":"mutable","name":"investorBalance","nodeType":"VariableDeclaration","scope":3186,"src":"23014:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3175,"name":"uint256","nodeType":"ElementaryTypeName","src":"23014:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23013:25:7"},"scope":3398,"src":"22957:140:7","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3241,"nodeType":"Block","src":"23407:302:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3197,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"23426:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"23426:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3199,"name":"vitta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"23438:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23426:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a65642073656e646572","id":3201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23445:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1e59d7b97f0680349c22289f1e4dd68175c3de2e3155f54bf05a002152968c5","typeString":"literal_string \\"Unauthorized sender\\""},"value":"Unauthorized sender"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1e59d7b97f0680349c22289f1e4dd68175c3de2e3155f54bf05a002152968c5","typeString":"literal_string \\"Unauthorized sender\\""}],"id":3196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23418:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23418:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3203,"nodeType":"ExpressionStatement","src":"23418:49:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3205,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23486:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3207,"indexExpression":{"id":3206,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3189,"src":"23493:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23486:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"23502:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23486:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e742062616c616e6365","id":3210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23510:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \\"Insufficient balance\\""},"value":"Insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \\"Insufficient balance\\""}],"id":3204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23478:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23478:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3212,"nodeType":"ExpressionStatement","src":"23478:55:7"},{"expression":{"arguments":[{"id":3214,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"23557:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3213,"name":"saveInvestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2041,"src":"23544:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23544:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3216,"nodeType":"ExpressionStatement","src":"23544:23:7"},{"expression":{"id":3227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3217,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23578:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3219,"indexExpression":{"id":3218,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"23585:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23578:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3222,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23611:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3224,"indexExpression":{"id":3223,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"23618:9:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23611:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3225,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"23630:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3220,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"23598:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"23598:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23598:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23578:59:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3228,"nodeType":"ExpressionStatement","src":"23578:59:7"},{"expression":{"id":3239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3229,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23648:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3231,"indexExpression":{"id":3230,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3189,"src":"23655:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23648:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3234,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"23678:6:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3236,"indexExpression":{"id":3235,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3189,"src":"23685:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23678:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3237,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"23694:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3232,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"23665:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeMath_$1178_$","typeString":"type(library SafeMath)"}},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"23665:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23665:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23648:53:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3240,"nodeType":"ExpressionStatement","src":"23648:53:7"}]},"documentation":{"id":3187,"nodeType":"StructuredDocumentation","src":"23105:218:7","text":"Adjust stakes for every transfer of Vitta\\n@param  sender      transferor of Vitta\\n@param  recipient   transferee of vitta\\n@param  amount      amount of vitta transferred"},"functionSelector":"beabacc8","id":3242,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":3194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3189,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":3242,"src":"23347:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3188,"name":"address","nodeType":"ElementaryTypeName","src":"23347:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3191,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":3242,"src":"23363:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3190,"name":"address","nodeType":"ElementaryTypeName","src":"23363:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3193,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":3242,"src":"23382:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3192,"name":"uint256","nodeType":"ElementaryTypeName","src":"23382:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23346:51:7"},"returnParameters":{"id":3195,"nodeType":"ParameterList","parameters":[],"src":"23407:0:7"},"scope":3398,"src":"23329:380:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3251,"nodeType":"Block","src":"23799:27:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3248,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"23810:6:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23810:8:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3250,"nodeType":"ExpressionStatement","src":"23810:8:7"}]},"documentation":{"id":3243,"nodeType":"StructuredDocumentation","src":"23717:42:7","text":"Pauses this contract"},"functionSelector":"8456cb59","id":3252,"implemented":true,"kind":"function","modifiers":[{"id":3246,"modifierName":{"id":3245,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"23789:9:7"},"nodeType":"ModifierInvocation","src":"23789:9:7"}],"name":"pause","nodeType":"FunctionDefinition","parameters":{"id":3244,"nodeType":"ParameterList","parameters":[],"src":"23779:2:7"},"returnParameters":{"id":3247,"nodeType":"ParameterList","parameters":[],"src":"23799:0:7"},"scope":3398,"src":"23765:61:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3261,"nodeType":"Block","src":"23924:29:7","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3258,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":194,"src":"23935:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23935:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3260,"nodeType":"ExpressionStatement","src":"23935:10:7"}]},"documentation":{"id":3253,"nodeType":"StructuredDocumentation","src":"23838:44:7","text":"Unpauses this contract"},"functionSelector":"3f4ba83a","id":3262,"implemented":true,"kind":"function","modifiers":[{"id":3256,"modifierName":{"id":3255,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"23914:9:7"},"nodeType":"ModifierInvocation","src":"23914:9:7"}],"name":"unpause","nodeType":"FunctionDefinition","parameters":{"id":3254,"nodeType":"ParameterList","parameters":[],"src":"23904:2:7"},"returnParameters":{"id":3257,"nodeType":"ParameterList","parameters":[],"src":"23924:0:7"},"scope":3398,"src":"23888:65:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3273,"nodeType":"Block","src":"24014:35:7","statements":[{"expression":{"id":3271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3269,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"24025:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3270,"name":"_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3264,"src":"24034:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24025:16:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3272,"nodeType":"ExpressionStatement","src":"24025:16:7"}]},"functionSelector":"7adbf973","id":3274,"implemented":true,"kind":"function","modifiers":[{"id":3267,"modifierName":{"id":3266,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46,"src":"24004:9:7"},"nodeType":"ModifierInvocation","src":"24004:9:7"}],"name":"setOracle","nodeType":"FunctionDefinition","parameters":{"id":3265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3264,"mutability":"mutable","name":"_oracle","nodeType":"VariableDeclaration","scope":3274,"src":"23980:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3263,"name":"address","nodeType":"ElementaryTypeName","src":"23980:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23979:17:7"},"returnParameters":{"id":3268,"nodeType":"ParameterList","parameters":[],"src":"24014:0:7"},"scope":3398,"src":"23961:88:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3298,"nodeType":"Block","src":"24145:94:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3285,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"24159:10:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3287,"indexExpression":{"id":3286,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3276,"src":"24170:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24159:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24177:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24159:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3297,"nodeType":"IfStatement","src":"24156:76:7","trueBody":{"id":3296,"nodeType":"Block","src":"24179:53:7","statements":[{"expression":{"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3290,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"24194:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3292,"indexExpression":{"id":3291,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3276,"src":"24207:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24194:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3293,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3278,"src":"24216:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24194:26:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3295,"nodeType":"ExpressionStatement","src":"24194:26:7"}]}}]},"functionSelector":"bd5c5420","id":3299,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"24133:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"24133:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3283,"modifierName":{"id":3280,"name":"onlyOracle","nodeType":"IdentifierPath","referencedDeclaration":1307,"src":"24122:10:7"},"nodeType":"ModifierInvocation","src":"24122:22:7"}],"name":"setExchangeRate","nodeType":"FunctionDefinition","parameters":{"id":3279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3276,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":3299,"src":"24086:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3275,"name":"address","nodeType":"ElementaryTypeName","src":"24086:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3278,"mutability":"mutable","name":"rate","nodeType":"VariableDeclaration","scope":3299,"src":"24101:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3277,"name":"uint256","nodeType":"ElementaryTypeName","src":"24101:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24085:29:7"},"returnParameters":{"id":3284,"nodeType":"ParameterList","parameters":[],"src":"24145:0:7"},"scope":3398,"src":"24061:178:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3312,"nodeType":"Block","src":"24321:40:7","statements":[{"expression":{"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3308,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"24332:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3309,"name":"_treasurer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3301,"src":"24343:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24332:21:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3311,"nodeType":"ExpressionStatement","src":"24332:21:7"}]},"functionSelector":"671d6429","id":3313,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3304,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"24310:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"24310:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3306,"modifierName":{"id":3303,"name":"onlyTreasurer","nodeType":"IdentifierPath","referencedDeclaration":1320,"src":"24296:13:7"},"nodeType":"ModifierInvocation","src":"24296:25:7"}],"name":"setTreasurer","nodeType":"FunctionDefinition","parameters":{"id":3302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3301,"mutability":"mutable","name":"_treasurer","nodeType":"VariableDeclaration","scope":3313,"src":"24269:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3300,"name":"address","nodeType":"ElementaryTypeName","src":"24269:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24268:20:7"},"returnParameters":{"id":3307,"nodeType":"ParameterList","parameters":[],"src":"24321:0:7"},"scope":3398,"src":"24247:114:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3326,"nodeType":"Block","src":"24444:42:7","statements":[{"expression":{"id":3324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3322,"name":"liquidityShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"24455:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3323,"name":"_share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3315,"src":"24472:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24455:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3325,"nodeType":"ExpressionStatement","src":"24455:23:7"}]},"functionSelector":"6260f1d8","id":3327,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"24433:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"24433:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3320,"modifierName":{"id":3317,"name":"onlyTreasurer","nodeType":"IdentifierPath","referencedDeclaration":1320,"src":"24419:13:7"},"nodeType":"ModifierInvocation","src":"24419:25:7"}],"name":"setLiquidityShare","nodeType":"FunctionDefinition","parameters":{"id":3316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3315,"mutability":"mutable","name":"_share","nodeType":"VariableDeclaration","scope":3327,"src":"24396:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3314,"name":"uint256","nodeType":"ElementaryTypeName","src":"24396:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24395:16:7"},"returnParameters":{"id":3321,"nodeType":"ParameterList","parameters":[],"src":"24444:0:7"},"scope":3398,"src":"24369:117:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3362,"nodeType":"Block","src":"24737:355:7","statements":[{"assignments":[3337],"declarations":[{"constant":false,"id":3337,"mutability":"mutable","name":"tokenDecimals","nodeType":"VariableDeclaration","scope":3362,"src":"24829:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3336,"name":"uint256","nodeType":"ElementaryTypeName","src":"24829:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3346,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":3341,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3331,"src":"24867:5:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":3340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24859:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3339,"name":"address","nodeType":"ElementaryTypeName","src":"24859:7:7","typeDescriptions":{}}},"id":3342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24859:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3338,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":741,"src":"24853:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$741_$","typeString":"type(contract ERC20)"}},"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24853:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$741","typeString":"contract ERC20"}},"id":3344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":270,"src":"24853:30:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":3345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24853:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"24829:56:7"},{"assignments":[3348],"declarations":[{"constant":false,"id":3348,"mutability":"mutable","name":"decimalsDifference","nodeType":"VariableDeclaration","scope":3362,"src":"24971:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3347,"name":"uint256","nodeType":"ElementaryTypeName","src":"24971:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3354,"initialValue":{"arguments":[{"hexValue":"3138","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25009:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},{"id":3352,"name":"tokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3337,"src":"25013:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3349,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"25000:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6596_$","typeString":"type(library Math)"}},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":6406,"src":"25000:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25000:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24971:56:7"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3355,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25045:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ONE","nodeType":"MemberAccess","referencedDeclaration":4571,"src":"25045:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25062:2:7","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3358,"name":"decimalsDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"25066:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25062:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25045:39:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3335,"id":3361,"nodeType":"Return","src":"25038:46:7"}]},"documentation":{"id":3328,"nodeType":"StructuredDocumentation","src":"24494:160:7","text":" @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\\n it had 18 decimals."},"id":3363,"implemented":true,"kind":"function","modifiers":[],"name":"_computeScalingFactor","nodeType":"FunctionDefinition","parameters":{"id":3332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3331,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":3363,"src":"24691:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"},"typeName":{"id":3330,"nodeType":"UserDefinedTypeName","pathNode":{"id":3329,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":819,"src":"24691:6:7"},"referencedDeclaration":819,"src":"24691:6:7","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"24690:14:7"},"returnParameters":{"id":3335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3334,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3363,"src":"24728:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3333,"name":"uint256","nodeType":"ElementaryTypeName","src":"24728:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24727:9:7"},"scope":3398,"src":"24660:432:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3379,"nodeType":"Block","src":"25397:67:7","statements":[{"expression":{"arguments":[{"id":3375,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3366,"src":"25434:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3376,"name":"scalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"25442:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3373,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25415:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"divDown","nodeType":"MemberAccess","referencedDeclaration":4767,"src":"25415:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25415:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3372,"id":3378,"nodeType":"Return","src":"25408:48:7"}]},"documentation":{"id":3364,"nodeType":"StructuredDocumentation","src":"25100:196:7","text":" @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\\n whether it needed scaling or not. The result is rounded down."},"id":3380,"implemented":true,"kind":"function","modifiers":[],"name":"_downscaleDown","nodeType":"FunctionDefinition","parameters":{"id":3369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3366,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":3380,"src":"25326:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3365,"name":"uint256","nodeType":"ElementaryTypeName","src":"25326:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3368,"mutability":"mutable","name":"scalingFactor","nodeType":"VariableDeclaration","scope":3380,"src":"25342:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3367,"name":"uint256","nodeType":"ElementaryTypeName","src":"25342:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25325:39:7"},"returnParameters":{"id":3372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3371,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3380,"src":"25388:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3370,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25387:9:7"},"scope":3398,"src":"25302:162:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3396,"nodeType":"Block","src":"25721:67:7","statements":[{"expression":{"arguments":[{"id":3392,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3383,"src":"25758:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3393,"name":"scalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3385,"src":"25766:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3390,"name":"FixedPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25739:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPoint_$4986_$","typeString":"type(library FixedPoint)"}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDown","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"25739:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25739:41:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3389,"id":3395,"nodeType":"Return","src":"25732:48:7"}]},"documentation":{"id":3381,"nodeType":"StructuredDocumentation","src":"25472:154:7","text":" @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\\n scaling or not."},"id":3397,"implemented":true,"kind":"function","modifiers":[],"name":"_upscale","nodeType":"FunctionDefinition","parameters":{"id":3386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3383,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":3397,"src":"25650:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3382,"name":"uint256","nodeType":"ElementaryTypeName","src":"25650:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3385,"mutability":"mutable","name":"scalingFactor","nodeType":"VariableDeclaration","scope":3397,"src":"25666:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3384,"name":"uint256","nodeType":"ElementaryTypeName","src":"25666:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25649:39:7"},"returnParameters":{"id":3389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3388,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3397,"src":"25712:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3387,"name":"uint256","nodeType":"ElementaryTypeName","src":"25712:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25711:9:7"},"scope":3398,"src":"25632:156:7","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3399,"src":"600:25197:7"}],"src":"104:25697:7"},"compiler":{"name":"solc","version":"0.8.0+commit.c7dfd78e.Emscripten.clang"},"networks":{"8453":{"events":{},"links":{},"address":"0x5d85E0aDBa6E9E388D0641D7C8d925756316e99D","transactionHash":"0xa654dd11cfaa43d0b09094814b08052d2305e650664a00432ae693cbdecb7b3d"}},"schemaVersion":"3.4.3","updatedAt":"2024-07-27T19:35:55.142Z","networkType":"ethereum","devdoc":{"kind":"dev","methods":{"addManager(address,address)":{"params":{"_manager":"address of asset manager","_platform":"address of market making platform (eg, Balancer)"}},"buy(address,uint256)":{"params":{"_amount":"amount of token that is transferred from investor to this VITTA issuing contract\'s account for the investor","_token":"address of token used by investor to buy the VITTA"}},"checkSupportForToken(address)":{"params":{"_token":"token that is supported for investment"}},"constructor":{"params":{"_cap":"investment limit for each investor","_limit":"time limit for issue close","_vitta":"address of Verified liquidity token"}},"createSupply(uint256,uint256)":{"params":{"_cap":"investment limit for each investor","_limit":"time limit for issue close "}},"distribute(uint256,address,address)":{"params":{"_distribution":"amount of VITTA to mint and distribute pro rata to liquidity providers","_manager":"address of asset manager earning the paid out return on investment ","_token":"address of token in which distribution is made by market maker    "}},"getInvestment(address,address)":{"params":{"_investor":"address of investor","_token":"address of token invested by investor"}},"getManagerPerformance(address,address,address)":{"params":{"_manager":"address of asset manager on platform","_platform":"address of platform","_token":"address of token"}},"getManagers(address)":{"params":{"_platform":"address of market making platform"}},"getPlatformPerformance(address)":{"params":{"_platform":"address of market making platform"}},"issue(address,address,uint256,uint256)":{"params":{"_LPToIssue":"amount of VITTA to issue to investor ","_investor":"address of investor","_token":"address of token invested in VITTA","_tokenAmount":"amount of token invested in VITTA"}},"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"payOut(uint256,address)":{"params":{"_distribution":"amount of VITTA to mint and distribute pro rata to liquidity providers   ","_platform":"address of platform on which commission is earned based on which distribution is made"}},"provideLiquidity(address,address,uint256,address,uint256)":{"params":{"_liquidity":"amount of VITTA tokens to allot to an asset manager","_manager":"address of asset manager to whom liquidity has to be provided","_platform":"address of platform on which liquidity has to be provided","_token":"address of token allotted to asset manager","_tokenAmount":"amount of token allotted to asset manager"}},"registerPlatform(address,bytes32)":{"params":{"_liquidityPlatform":"address of the market making platform","_platformName":"name of market making platform"}},"removeManager(address,address)":{"params":{"_manager":"address of asset manager","_platform":"address of market making platform"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"supportTokens(address,string)":{"params":{"_name":"name of token supported","_token":"address of token supported"}},"transfer(address,address,uint256)":{"params":{"amount":"amount of vitta transferred","recipient":"transferee of vitta","sender":"transferor of Vitta"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"addManager(address,address)":{"notice":"Adds asset manager for managing liquidity"},"buy(address,uint256)":{"notice":"Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token "},"checkSupportForToken(address)":{"notice":"Checks if a specified token is supported for investing in the Verified Liquidity token"},"constructor":{"notice":"Constructor for the Verified Liquidity manager"},"createSupply(uint256,uint256)":{"notice":"Updates investment and time limits for Verified Liquidity token after initial issue with constructor defined parameters"},"distribute(uint256,address,address)":{"notice":"Pay out of income by Market maker contracts to VITTA Liquidity providers"},"getInvestment(address,address)":{"notice":"Fetches investment detail for specific investor in VITTA"},"getInvestors()":{"notice":"Fetches investors in VITTA"},"getManagerPerformance(address,address,address)":{"notice":"Fetches performance of asset managers"},"getManagers(address)":{"notice":"Gets asset managers for managing liquidity"},"getPlatformPerformance(address)":{"notice":"Fetches performance of market platform platform"},"getPlatforms()":{"notice":"Gets list of registered platforms"},"getSupportedTokens()":{"notice":"Returns list of supported tokens"},"issue(address,address,uint256,uint256)":{"notice":"Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached"},"pause()":{"notice":"Pauses this contract"},"payOut(uint256,address)":{"notice":"Pay out income to VITTA Liquidity providers"},"provideLiquidity(address,address,uint256,address,uint256)":{"notice":"Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned "},"registerPlatform(address,bytes32)":{"notice":"Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments"},"removeManager(address,address)":{"notice":"Removes asset manager for managing liquidity on platform"},"removeToken(address)":{"notice":"Removes a supported token"},"supportTokens(address,string)":{"notice":"Specifies list of supported tokens that can be invested in the Verified Liquidity token"},"transfer(address,address,uint256)":{"notice":"Adjust stakes for every transfer of Vitta"},"unpause()":{"notice":"Unpauses this contract"}},"version":1}}')}}]);