{
    "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
    }
}
