{
    "contractName": "Bond",
    "abi": [
        {
            "constant": true,
            "inputs": [],
            "name": "bondCurrency",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "name",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "approve",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "totalSupply",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                },
                {
                    "name": "recipient",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transferFrom",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "decimals",
            "outputs": [
                {
                    "name": "",
                    "type": "uint8"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "addedValue",
                    "type": "uint256"
                }
            ],
            "name": "increaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "issues",
            "outputs": [
                {
                    "name": "parValue",
                    "type": "uint256"
                },
                {
                    "name": "paidInAmount",
                    "type": "uint256"
                },
                {
                    "name": "paidInCurrency",
                    "type": "bytes32"
                },
                {
                    "name": "timeIssuedOrSubscribed",
                    "type": "uint256"
                },
                {
                    "name": "purchasedIssueAmount",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "purchases",
            "outputs": [
                {
                    "name": "parValue",
                    "type": "uint256"
                },
                {
                    "name": "paidInAmount",
                    "type": "uint256"
                },
                {
                    "name": "paidInCurrency",
                    "type": "bytes32"
                },
                {
                    "name": "timeIssuedOrSubscribed",
                    "type": "uint256"
                },
                {
                    "name": "purchasedIssueAmount",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "balanceOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "bondName",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isOwner",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "symbol",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "subtractedValue",
                    "type": "uint256"
                }
            ],
            "name": "decreaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "recipient",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transfer",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isPaused",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "bondsIssued",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "owner",
                    "type": "address"
                },
                {
                    "name": "spender",
                    "type": "address"
                }
            ],
            "name": "allowance",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "bondName",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "collateralAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "issueTime",
                    "type": "uint256"
                }
            ],
            "name": "BondIssued",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "tokenAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                }
            ],
            "name": "BondRedeemed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "bondName",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "paidInAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "purchaseTime",
                    "type": "uint256"
                }
            ],
            "name": "BondPurchased",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "tokenAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "currency",
                    "type": "bytes32"
                }
            ],
            "name": "BondLiquidated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "Paused",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "Unpaused",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "from",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "to",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Transfer",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "spender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Approval",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_name",
                    "type": "bytes32"
                },
                {
                    "name": "_currency",
                    "type": "bytes32"
                },
                {
                    "name": "_owner",
                    "type": "address"
                },
                {
                    "name": "_oracle",
                    "type": "address"
                },
                {
                    "name": "_token",
                    "type": "address"
                },
                {
                    "name": "_fee",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "payer",
                    "type": "address"
                },
                {
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "name": "cashContract",
                    "type": "address"
                }
            ],
            "name": "requestIssue",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "payer",
                    "type": "address"
                },
                {
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "name": "cashContract",
                    "type": "address"
                }
            ],
            "name": "requestPurchase",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "payer",
                    "type": "address"
                },
                {
                    "name": "currency",
                    "type": "bytes32"
                },
                {
                    "name": "tokenContract",
                    "type": "address"
                }
            ],
            "name": "requestRedemption",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                },
                {
                    "name": "receiver",
                    "type": "address"
                },
                {
                    "name": "tokens",
                    "type": "uint256"
                },
                {
                    "name": "forwarder",
                    "type": "address"
                }
            ],
            "name": "transferForward",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getBonds",
            "outputs": [
                {
                    "name": "",
                    "type": "address[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "name": "bondToken",
                    "type": "address"
                }
            ],
            "name": "getBondIssues",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                },
                {
                    "name": "",
                    "type": "uint256"
                },
                {
                    "name": "",
                    "type": "uint256"
                },
                {
                    "name": "",
                    "type": "bytes32"
                },
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "purchaser",
                    "type": "address"
                },
                {
                    "name": "bondToken",
                    "type": "address"
                }
            ],
            "name": "getBondPurchases",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                },
                {
                    "name": "",
                    "type": "uint256"
                },
                {
                    "name": "",
                    "type": "bytes32"
                },
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "pause",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "unpause",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"bondCurrency\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"payer\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"bytes32\"},{\"name\":\"cashContract\",\"type\":\"address\"}],\"name\":\"requestPurchase\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"payer\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"bytes32\"},{\"name\":\"tokenContract\",\"type\":\"address\"}],\"name\":\"requestRedemption\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"payer\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"bytes32\"},{\"name\":\"cashContract\",\"type\":\"address\"}],\"name\":\"requestIssue\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"issues\",\"outputs\":[{\"name\":\"parValue\",\"type\":\"uint256\"},{\"name\":\"paidInAmount\",\"type\":\"uint256\"},{\"name\":\"paidInCurrency\",\"type\":\"bytes32\"},{\"name\":\"timeIssuedOrSubscribed\",\"type\":\"uint256\"},{\"name\":\"purchasedIssueAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"purchaser\",\"type\":\"address\"},{\"name\":\"bondToken\",\"type\":\"address\"}],\"name\":\"getBondPurchases\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"purchases\",\"outputs\":[{\"name\":\"parValue\",\"type\":\"uint256\"},{\"name\":\"paidInAmount\",\"type\":\"uint256\"},{\"name\":\"paidInCurrency\",\"type\":\"bytes32\"},{\"name\":\"timeIssuedOrSubscribed\",\"type\":\"uint256\"},{\"name\":\"purchasedIssueAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"tokens\",\"type\":\"uint256\"},{\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"transferForward\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bondName\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_name\",\"type\":\"bytes32\"},{\"name\":\"_currency\",\"type\":\"bytes32\"},{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_oracle\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getBonds\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"bondToken\",\"type\":\"address\"}],\"name\":\"getBondIssues\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bondsIssued\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"bondName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"issueTime\",\"type\":\"uint256\"}],\"name\":\"BondIssued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"}],\"name\":\"BondRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"bondName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"paidInAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"purchaseTime\",\"type\":\"uint256\"}],\"name\":\"BondPurchased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"party\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"currency\",\"type\":\"bytes32\"}],\"name\":\"BondLiquidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\\r\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}.\\r      * Requirements:\\r      * - `spender` cannot be the zero address.\\r\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5.05` (`505 / 10 ** 2`).\\r      * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei. This is the default value returned by this function, unless\\r it's overridden.\\r      * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller.\\r      * This is an alternative to {approve} that can be used as a mitigation for\\r problems described in {IERC20-approve}.\\r      * Emits an {Approval} event indicating the updated allowance.\\r      * Requirements:\\r      * - `spender` cannot be the zero address.\\r - `spender` must have allowance for the caller of at least\\r `subtractedValue`.\\r\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller.\\r      * This is an alternative to {approve} that can be used as a mitigation for\\r problems described in {IERC20-approve}.\\r      * Emits an {Approval} event indicating the updated allowance.\\r      * Requirements:\\r      * - `spender` cannot be the zero address.\\r\"},\"initialize(address)\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"isPaused()\":{\"return\":\"True: contract is paused\\rFalse: contract is not paused\\r\"},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\\r\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}.\\r      * Requirements:\\r      * - `recipient` cannot be the zero address.\\r - the caller must have a balance of at least `amount`.\\r\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}.\\r      * Emits an {Approval} event indicating the updated allowance. This is not\\r required by the EIP. See the note at the beginning of {ERC20};\\r      * Requirements:\\r - `sender` and `recipient` cannot be the zero address.\\r - `sender` must have a balance of at least `amount`.\\r - the caller must have allowance for `sender`'s tokens of at least\\r `amount`.\\r\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{\"isPaused()\":{\"notice\":\"returns whether or not the contract is paused\\r\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Bond.sol\":\"Bond\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]},\"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzzr://cf2d583b8dce38d0617fdcd65f2fd9f126fe17b7f683b5a515ea9d2762d8b062\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"project:/contracts/Bond.sol\":{\"keccak256\":\"0xaae453ea503fa45a583a3c34e31e740cb0600f6fbaf7be1a9bc28a4194393c12\",\"urls\":[\"bzzr://c55bcee10bd5ca579adddc681850a2e227e2226f97b10dc42733711131926eb3\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xb4de3dbb08a33aef4860197790d320239afced5fab06ba8b625398671b76c780\",\"urls\":[\"bzzr://de06105d01c0e25f52ac75c1069e79795cc15cdf0169fc574534910055f8b58d\"]},\"project:/contracts/interfaces/VerifiedRates.sol\":{\"keccak256\":\"0x5c637fe1bca7c152e7fc41237459b65b6147632ad110c747584a6566424cb8da\",\"urls\":[\"bzzr://e9647e2e2b1768908061c2ea083d26bd9b2b764f91b5bc49207f3d30696a7a0c\"]},\"project:/contracts/interfaces/ViaBond.sol\":{\"keccak256\":\"0xfc471512526675edd84249f397bf94b1cef191bcbac1d3da1db24786867c4c62\",\"urls\":[\"bzzr://563d2507340846e5d3ac74b24d529a35e52241971e942784781cb4b48b36c2d6\"]},\"project:/contracts/interfaces/ViaCash.sol\":{\"keccak256\":\"0xe08910b316f239248810cafa5878b1f23e2caa10c019f5e8bfe70cf574eab482\",\"urls\":[\"bzzr://f70f069aca6c303ea77f40af1f9b0359b2e5af3a158bf31d9c46d5a47911d676\"]},\"project:/contracts/interfaces/ViaFactory.sol\":{\"keccak256\":\"0xd71096d3b9b6e130416a346913097dd5a5f1ca16e242778c9e1005058b14b7f2\",\"urls\":[\"bzzr://b2eeb8b364fec878cee9035228fce18a58d7cec7a0be946df554de65dd51332b\"]},\"project:/contracts/interfaces/ViaOracle.sol\":{\"keccak256\":\"0xeb2f7a3ecc458880235ec31ac0db32e20285679772f8fc04a5d338d587e711ae\",\"urls\":[\"bzzr://ee9ed796f36a5f1b111c9aecbfe7544f782d90c0c5d9ef94e6c0ce1806f3eee6\"]},\"project:/contracts/interfaces/ViaToken.sol\":{\"keccak256\":\"0xfe45ec0f3e72d12ca2c0dd9ff16258eec9a30b736dddfc8f799b7f2601b1aae0\",\"urls\":[\"bzzr://3d36c5055be4b4f517ee1670643fa0a139811d45ed844195009b00a8fc666c87\"]},\"project:/contracts/math/FixedPoint.sol\":{\"keccak256\":\"0xb5d4f457a56675a2e841c7bcbb71762e1e5d3ff89800a68cda6830d2361b7a6d\",\"urls\":[\"bzzr://f2eb2bb7e4f7952d86ffcd5848efa13b5895fb38168a8241ba467625d37cf90d\"]},\"project:/contracts/math/LogExpMath.sol\":{\"keccak256\":\"0xe8078460aae016460645c05a09602a8021473127853de5e0910138b885b53471\",\"urls\":[\"bzzr://edec9b90a5f598c7fa82fca8c96de4619e95eb3229b8ca3ecc28cc3bed8f204a\"]},\"project:/contracts/math/Math.sol\":{\"keccak256\":\"0x352df7212aec370f69fe388c57272ea67063e5a057483f048237fd32d19b6ed5\",\"urls\":[\"bzzr://6b4058cb71c9b6e2e0a7f8278bc630f466616de1c3fe430e71e2794a8a104ebd\"]},\"project:/contracts/utilities/ERC20.sol\":{\"keccak256\":\"0x410b1bfe4ae45185f9d971ef497cf28ea3f0efb18ced3760fa781aaa150835a8\",\"urls\":[\"bzzr://ce908881afa94cfdc13d8e9afd3aa1edb50cae8469eee123f1169ffbbb0f7f16\"]},\"project:/contracts/utilities/Pausable.sol\":{\"keccak256\":\"0x96eceae12582eec38cc9706095b6f7d038b00dc36d98a02d234e7051b42a2a6a\",\"urls\":[\"bzzr://e5e1adfa3d22d6769d754f3f7f74eb1b12f5327b56b49584d34490b9d747d9b3\"]},\"project:/contracts/utilities/StringUtils.sol\":{\"keccak256\":\"0xb732e27507ecd8e7606f018dafa15110d93650c14aa9e8a16825871b4a58a05d\",\"urls\":[\"bzzr://e7d1e44d5e8c1c8e4fc71a4818f9ab4b0f4aa4912d159594209572fc5fbad06c\"]}},\"version\":1}",
    "bytecode": "0x6080604052615fdc806100136000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806381ca86fe1161010f57806395d89b41116100a2578063c4d66de811610071578063c4d66de8146103f4578063d478b27414610407578063dd62ed3e1461041a578063f2fde38b1461042d576101f0565b806395d89b41146103be578063a457c2d7146103c6578063a9059cbb146103d9578063b187bd26146103ec576101f0565b80638b140f6b116100de5780638b140f6b146103795780638da5cb5b1461038e5780638f32d59b146103a35780638fba9c7c146103ab576101f0565b806381ca86fe146103435780638456cb5914610356578063887b6abc1461035e57806389d29c4c14610366576101f0565b8063313ce56711610187578063410a6c7d11610156578063410a6c7d146102f25780636b98f8351461031557806370a0823114610328578063715018a61461033b576101f0565b8063313ce5671461029c57806339509351146102b157806339baf480146102c45780633f4ba83a146102e8576101f0565b80631f6fbfae116101c35780631f6fbfae1461025057806320f46de11461026357806323b872dd146102765780633138088814610289576101f0565b80630484d542146101f557806306fdde0314610213578063095ea7b31461022857806318160ddd14610248575b600080fd5b6101fd610440565b60405161020a9190615be0565b60405180910390f35b61021b610446565b60405161020a9190615ca5565b61023b61023636600461527f565b6104dd565b60405161020a9190615bd2565b6101fd6104fb565b61023b61025e366004615390565b610501565b61023b610271366004615390565b61073b565b61023b6102843660046151d1565b610853565b61023b610297366004615390565b6108e1565b6102a4610a51565b60405161020a9190615e7e565b61023b6102bf36600461527f565b610a56565b6102d76102d2366004615197565b610aaa565b60405161020a959493929190615e70565b6102f0610ae4565b005b610305610300366004615197565b610b44565b60405161020a9493929190615e55565b6102d7610323366004615197565b610b88565b6101fd61033636600461515b565b610bc2565b6102f0610be1565b61023b61035136600461521e565b610c52565b6102f0610d20565b6101fd610d7c565b6102f06103743660046152eb565b610d82565b610381610eac565b60405161020a9190615bc1565b610396610f0d565b60405161020a9190615a91565b61023b610f1c565b6102d76103b9366004615197565b610f42565b61021b610f8a565b61023b6103d436600461527f565b610feb565b61023b6103e736600461527f565b611059565b61023b61106d565b6102f061040236600461515b565b611076565b610396610415366004615372565b61114b565b6101fd610428366004615197565b611172565b6102f061043b36600461515b565b61119d565b60a05481565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b820191906000526020600020905b8154815290600101906020018083116104b557829003601f168201915b505050505090505b90565b60006104f16104ea6111d0565b84846111d4565b5060015b92915050565b60355490565b609d5460009060ff161561051457600080fd5b8461053d57604051600160e51b62461bcd02815260040161053490615ce6565b60405180910390fd5b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b90610574903390600401615a9f565b60206040518083038186803b15801561058c57600080fd5b505afa1580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105c491908101906152cd565b600160a11b6b2b34b0a137b7322a37b5b2b702146105e157600080fd5b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b90610618908590600401615a91565b60206040518083038186803b15801561063057600080fd5b505afa158015610644573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061066891908101906152cd565b600160cb1b660acd2c286c2e6d0214806107045750609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906106b4908690600401615be0565b60206040518083038186803b1580156106cc57600080fd5b505afa1580156106e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061070491908101906152af565b61072357604051600160e51b62461bcd02815260040161053490615d7d565b610730858585853361128e565b90505b949350505050565b609d5460009060ff161561074e57600080fd5b6107578461193a565b151560011461077b57604051600160e51b62461bcd02815260040161053490615d20565b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b906107b2903390600401615a9f565b60206040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061080291908101906152cd565b600160a11b6b2b34b0a137b7322a37b5b2b7021461081f57600080fd5b61083e858585600160a11b6b21b0b9b42a3930b739b332b90286611a75565b1561084b57506001610733565b506000610733565b6000610860848484613007565b6108d68461086c6111d0565b6108d185604051806060016040528060288152602001615f56602891396001600160a01b038a166000908152603460205260408120906108aa6111d0565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61312316565b6111d4565b5060015b9392505050565b609d5460009060ff16156108f457600080fd5b8260a054141561090357600080fd5b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b9061093a903390600401615a9f565b60206040518083038186803b15801561095257600080fd5b505afa158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061098a91908101906152cd565b600160cb1b660acd2c286c2e6d021480610a265750609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906109d6908690600401615be0565b60206040518083038186803b1580156109ee57600080fd5b505afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a2691908101906152af565b610a4557604051600160e51b62461bcd02815260040161053490615d40565b61073085858585613152565b601290565b60006104f1610a636111d0565b846108d18560346000610a746111d0565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135e116565b60a3602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b609d54339061010090046001600160a01b0316610aff610f0d565b6001600160a01b0316826001600160a01b03161480610b2f5750806001600160a01b0316826001600160a01b0316145b610b3857600080fd5b610b40613609565b5050565b6001600160a01b03918216600090815260a3602090815260408083209390941682529190915220600481015460018201546002830154600390930154919390929190565b60a4602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b6001600160a01b0381166000908152603360205260409020545b919050565b610be9610f1c565b610c0857604051600160e51b62461bcd02815260040161053490615d6d565b606a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606a80546001600160a01b0319169055565b609d5460009060ff1615610c6557600080fd5b610c6e8561193a565b1515600114610c7c57600080fd5b610c858461193a565b1515600114610c9357600080fd5b6001600160a01b0384163014801590610cbd5750816001600160a01b0316846001600160a01b0316145b15610ce45761083e838660a154600160991b6c2a37b5b2b72a3930b739b332b90286611a75565b6001600160a01b03808616600090815260a4602090815260408083209386168352929052206004015483141561084b5761083e8286868661363e565b609d54339061010090046001600160a01b0316610d3b610f0d565b6001600160a01b0316826001600160a01b03161480610d6b5750806001600160a01b0316826001600160a01b0316145b610d7457600080fd5b610b406137a8565b60a15481565b600054610100900460ff1680610d9b5750610d9b6137e0565b80610da9575060005460ff16155b610dc857604051600160e51b62461bcd02815260040161053490615d8d565b600054610100900460ff16158015610df3576000805460ff1961ff0019909116610100171660011790555b610dfc85611076565b609d8054610100600160a81b0319163361010002179055609f80546001600160a01b0319166001600160a01b038616179055604051610e5790610e43908990602001615a7c565b6040516020818303038152906040526137e6565b60a187905560a086905560a280546001600160a01b038086166001600160a01b031992831617909255609e8054928516929091169190911790558015610ea3576000805461ff00191690555b50505050505050565b606060a58054806020026020016040519081016040528092919081815260200182805480156104d257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ee6575050505050905090565b606a546001600160a01b031690565b606a546000906001600160a01b0316610f336111d0565b6001600160a01b031614905090565b6001600160a01b03918216600090815260a360209081526040808320939094168252919091522080546004820154600183015460028401546003909401549294919390929091565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b60006104f1610ff86111d0565b846108d185604051806060016040528060258152602001615f7e60259139603460006110226111d0565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61312316565b60006104f16110666111d0565b8484613007565b609d5460ff1690565b600054610100900460ff168061108f575061108f6137e0565b8061109d575060005460ff16155b6110bc57604051600160e51b62461bcd02815260040161053490615d8d565b600054610100900460ff161580156110e7576000805460ff1961ff0019909116610100171660011790555b606a80546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015610b40576000805461ff00191690555050565b60a5818154811061115857fe5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6111a5610f1c565b6111c457604051600160e51b62461bcd02815260040161053490615d6d565b6111cd816137f9565b50565b3390565b6001600160a01b0383166111fd57604051600160e51b62461bcd02815260040161053490615e0d565b6001600160a01b03821661122657604051600160e51b62461bcd02815260040161053490615cd6565b6001600160a01b0380841660008181526034602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611281908590615be0565b60405180910390a3505050565b609d54604051600160e01b63f429f19b02815260009161010090046001600160a01b03169063f429f19b906112c7908690600401615a91565b60206040518083038186803b1580156112df57600080fd5b505afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061131791908101906152cd565b600160cb1b660acd2c286c2e6d0214156113bf57604051600160e11b637c06e5cd0281526001600160a01b0384169063f80dcb9a9061135c9089908990600401615e3a565b602060405180830381600087803b15801561137657600080fd5b505af115801561138a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113ae91908101906152af565b6113ba57506000611931565b6114f1565b609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906113f6908790600401615be0565b60206040518083038186803b15801561140e57600080fd5b505afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061144691908101906152af565b1515600114156114f157604051600160e01b6323b872dd0281526001600160a01b038416906323b872dd9061148390889030908b90600401615ae2565b602060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114d591908101906152af565b5060006114e18461387e565b90506114ed8782613919565b9650505b6000806000808590506000816001600160a01b031663525564216040518163ffffffff1660e01b815260040160206040518083038186803b15801561153557600080fd5b505afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061156d9190810190615179565b609d54604051600160e11b632d7a39850281529192506000916101009091046001600160a01b031690635af4730a906115aa908b90600401615a91565b60206040518083038186803b1580156115c257600080fd5b505afa1580156115d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115fa91908101906152cd565b1561168b57609d54604051600160e11b632d7a39850281526101009091046001600160a01b031690635af4730a90611636908b90600401615a91565b60206040518083038186803b15801561164e57600080fd5b505afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061168691908101906152cd565b611691565b6301e133805b6001600160a01b03808416600090815260a360209081526040808320938d16835292905220600301549091506116c8904290613925565b15611711576001600160a01b03808316600090815260a360209081526040808320938c168352929052206003015461170c908290611707904290613925565b613925565b611713565b805b905060a0548a1461187657609f5460a054604051600160e11b634d3038fd0281526001600160a01b0390921691639a6071fa91611755918e9190600401615c3c565b602060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117a791908101906152cd565b609f5460a054604051600160e11b634d3038fd0281529298506001600160a01b0390911691639a6071fa916117e1918e9190600401615c15565b602060405180830381600087803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061183391908101906152cd565b945061186f6118428d88613950565b61186a611857670de0b6b3a76400008961399b565b611865856301e133806139c3565b613a3b565b613950565b935061191b565b609f54604051600160e11b634d3038fd0281526001600160a01b0390911690639a6071fa906118ab908d908190600401615c15565b602060405180830381600087803b1580156118c557600080fd5b505af11580156118d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118fd91908101906152cd565b94506119188c61186a611857670de0b6b3a76400008961399b565b93505b61192a8b858e8d8d8d88613b84565b5050505050505b95945050505050565b600080609d60019054906101000a90046001600160a01b03166001600160a01b03166359dc735c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561198b57600080fd5b505afa15801561199f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119c39190810190615179565b90506001600160a01b0381166119dd576001915050610bdc565b604051600160e01b633a2910330281526001600160a01b03821690633a29103390611a0c908690600401615a91565b60206040518083038186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a5c91908101906152af565b15611a6b576001915050610bdc565b6000915050610bdc565b600082600160991b6c2a37b5b2b72a3930b739b332b9021415612689576001600160a01b03808616600090815260a4602090815260408083209386168352929052908120600401548714156121f0576001600160a01b03808716600090815260a46020908152604080832093871683529290522060030154156121eb576001600160a01b03808716600090815260a460209081526040808320938716835292905290812060050180548290611b2657fe5b60009182526020808320909101546001600160a01b038a8116845260a48352604080852089831686529093529183206005018054929091169350611c2791611bb1918c9160a39186918290611b7757fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938c168252929092529020546139c3565b6001600160a01b03808b16600090815260a460209081526040808320938b168352929052908120600501805460a39291908290611bea57fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938b16825292909252902060010154613950565b6001600160a01b03808a16600090815260a460209081526040808320938a1683529290522060030154909150611ca190829061186a90611c68904290613925565b6001600160a01b03808716600090815260a360209081526040808320938d1683529290522060030154611c9c904290613925565b6139c3565b600160a91b6a3634b8bab4b230ba34b7b70260005260a66020527f05a2a80dc0a06b85519a095f2ba9850854a353af20abe08d4a96b5be13553e055490915060ff1615611ced57600080fd5b7f05a2a80dc0a06b85519a095f2ba9850854a353af20abe08d4a96b5be13553e05805460ff191660011790556001600160a01b03888116600090815260a4602090815260408083209389168352929052908120600501805460a39183918290611d5257fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938a168252929092529020600201549050611da78282600160b11b693932b232b6b83a34b7b702613dda565b609d54604051600160e21b633444c8b50281529193506000916101009091046001600160a01b03169063d11322d490611de4908590600401615be0565b60206040518083038186803b158015611dfc57600080fd5b505afa158015611e10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e3491908101906152af565b15611ec757609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990611e70908590600401615be0565b60206040518083038186803b158015611e8857600080fd5b505afa158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ec09190810190615179565b9050611f51565b609d54604051600160e01b632ea779170281526101009091046001600160a01b031690632ea7791790611efe908590600401615d06565b60206040518083038186803b158015611f1657600080fd5b505afa158015611f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f4e9190810190615179565b90505b611f5c81848c614208565b604051600160e21b6320188d110281526001600160a01b03881690638062344490611f8b908e90600401615be0565b600060405180830381600087803b158015611fa557600080fd5b505af1158015611fb9573d6000803e3d6000fd5b5050604051600160e11b635a393c830281526001600160a01b038a16925063b47279069150611fee908d908f90600401615b64565b600060405180830381600087803b15801561200857600080fd5b505af115801561201c573d6000803e3d6000fd5b50505050896001600160a01b03167f7684b39e31475e1a38b6e3a751004b3ecccbd7d0e1d54d9f43e8e7f1e4e7cb0d888d8c8787604051612061959493929190615b7f565b60405180910390a26001600160a01b03808516600090815260a360209081526040808320938b16835292905290812060050154905b81811015612148576001600160a01b03868116600090815260a3602090815260408083208d8516845290915290206005018054918e1691839081106120d757fe5b6000918252602090912001546001600160a01b03161415612140576001600160a01b03808716600090815260a360209081526040808320938d1683529290522060050180548290811061212657fe5b600091825260209091200180546001600160a01b03191690555b600101612096565b506001600160a01b03808c16600090815260a460209081526040808320938c168352929052908120818155600181018290556002810182905560038101829055600481018290559061219d6005830182614ff1565b50505050505050600160a91b6a3634b8bab4b230ba34b7b7026000525060a66020527f05a2a80dc0a06b85519a095f2ba9850854a353af20abe08d4a96b5be13553e05805460ff1916905560015b612682565b604051600160e01b63f8b2cb4f02815287906001600160a01b0385169063f8b2cb4f90612221908a90600401615a91565b602060405180830381600087803b15801561223b57600080fd5b505af115801561224f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061227391908101906152cd565b1061268257600160b11b693932b232b6b83a34b7b70260005260a66020527f4ca318e94f3e0d335d241b6d4b4bd718871e2e9666de12f792ed0b39946b33975460ff16156122c057600080fd5b7f4ca318e94f3e0d335d241b6d4b4bd718871e2e9666de12f792ed0b39946b3397805460ff191660011790556001600160a01b03868116600090815260a36020908152604080832093871683529290529081206002810154905490919061235a9061232c908b906139c3565b6001600160a01b03808b16600090815260a360209081526040808320938b1683529290522060010154613950565b90506123778183600160b11b693932b232b6b83a34b7b702613dda565b609d54604051600160e21b633444c8b50281529192506000916101009091046001600160a01b03169063d11322d4906123b4908690600401615be0565b60206040518083038186803b1580156123cc57600080fd5b505afa1580156123e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061240491908101906152af565b1561249757609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990612440908690600401615be0565b60206040518083038186803b15801561245857600080fd5b505afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124909190810190615179565b9050612521565b609d54604051600160e01b632ea779170281526101009091046001600160a01b031690632ea77917906124ce908690600401615d06565b60206040518083038186803b1580156124e657600080fd5b505afa1580156124fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061251e9190810190615179565b90505b61252c81838b614208565b604051600160e21b6320188d110281526001600160a01b0387169063806234449061255b908d90600401615be0565b600060405180830381600087803b15801561257557600080fd5b505af1158015612589573d6000803e3d6000fd5b5050604051600160e11b635a393c830281526001600160a01b038916925063b472790691506125be908c908e90600401615b64565b600060405180830381600087803b1580156125d857600080fd5b505af11580156125ec573d6000803e3d6000fd5b50505050886001600160a01b03167f2d19a99480f5a3ef68b4447c6cca94ffc19c61d91a3baa80d015f30cfb2b46ac878c8b8688604051612631959493929190615b7f565b60405180910390a25050600160b11b693932b232b6b83a34b7b702600052505060a66020527f4ca318e94f3e0d335d241b6d4b4bd718871e2e9666de12f792ed0b39946b3397805460ff1916905560015b9050611931565b82600160a11b6b21b0b9b42a3930b739b332b9021415611931576001600160a01b03808616600090815260a36020908152604080832093861683529290529081206003015481908190889086908b908a9015612ff857600160911b6d31b0b9b43932b232b6b83a34b7b70260005260a66020527fc7e5ed2b3e9d900337a6bb387eeedd4254c98cff1fa87210e05d9a4589549f235460ff161561272b57600080fd5b600160911b6d31b0b9b43932b232b6b83a34b7b70260005260a66020527fc7e5ed2b3e9d900337a6bb387eeedd4254c98cff1fa87210e05d9a4589549f238054600160ff19909116179055609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906127ad908490600401615be0565b60206040518083038186803b1580156127c557600080fd5b505afa1580156127d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127fd91908101906152af565b1561292257609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990612839908490600401615be0565b60206040518083038186803b15801561285157600080fd5b505afa158015612865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128899190810190615179565b965081876001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016128b89190615a91565b60206040518083038186803b1580156128d057600080fd5b505afa1580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061290891908101906152cd565b101561291d5785975050505050505050611931565b612a42565b609d54604051600160e01b632ea779170281526101009091046001600160a01b031690632ea7791790612959908490600401615d06565b60206040518083038186803b15801561297157600080fd5b505afa158015612985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129a99190810190615179565b604051600160e11b637c06e5cd0281529097506001600160a01b0388169063f80dcb9a906129dd9085908890600401615e3a565b602060405180830381600087803b1580156129f757600080fd5b505af1158015612a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a2f91908101906152af565b612a425785975050505050505050611931565b60005b6001600160a01b03808616600090815260a36020908152604080832093881683529290522060050154811015612e2c576001600160a01b03808616600090815260a3602090815260408083209388168352929052908120600501805483908110612aab57fe5b9060005260206000200160009054906101000a90046001600160a01b031690506000612b6d60a46000846001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206004015460a360008a6001600160a01b03166001600160a01b0316815260200190815260200160002060008f6001600160a01b03166001600160a01b03168152602001908152602001600020600001546139c3565b6001600160a01b03808916600090815260a360209081526040808320938b1683529290529081205491925090612ba4908390613950565b6001600160a01b03808516600090815260a460209081526040808320938c1683529290522060030154909150612c1990829061186a90612be5904290613925565b6001600160a01b03808d16600090815260a360209081526040808320938f1683529290522060030154611c9c904290613925565b90506001600160a01b038b1615801590612c335750600081115b15612d9257612c538186600160b11b693932b232b6b83a34b7b702613dda565b9050612c608b8285614208565b612c6a898261399b565b604051600160e21b6320188d110281529099506001600160a01b03881690638062344490612c9c908490600401615be0565b600060405180830381600087803b158015612cb657600080fd5b505af1158015612cca573d6000803e3d6000fd5b5050604051600160e11b635a393c830281526001600160a01b038a16925063b47279069150612cff9086908590600401615b64565b600060405180830381600087803b158015612d1957600080fd5b505af1158015612d2d573d6000803e3d6000fd5b5050506001600160a01b03808516600090815260a460209081526040808320938c1683529290522060040154612d64915082613925565b6001600160a01b03808516600090815260a460209081526040808320938c1683529290522060040155600199505b898015612dc557506001600160a01b03808416600090815260a460209081526040808320938b1683529290522060040154155b15612e21576001600160a01b03808416600090815260a460209081526040808320938b1683529290529081208181556001810182905560028101829055600381018290556004810182905590612e1e6005830182614ff1565b50505b505050600101612a45565b600160911b6d31b0b9b43932b232b6b83a34b7b70260005260a66020527fc7e5ed2b3e9d900337a6bb387eeedd4254c98cff1fa87210e05d9a4589549f23805460ff191690558615612ff6576001600160a01b03808616600090815260a360209081526040808320938816835292905290812060040154612eae9088906139c3565b6001600160a01b03808816600090815260a360209081526040808320938a1683529290529081206001015491925090612ee79083613950565b6001600160a01b03808916600090815260a360209081526040808320938b1683529290522060020154909150612f1e8b838a614208565b6001600160a01b03808916600090815260a360209081526040808320938b168352929052206005015460001901841415612fa9576001600160a01b03808916600090815260a360209081526040808320938b1683529290529081208181556001810182905560028101829055600381018290556004810182905590612fa66005830182614ff1565b50505b876001600160a01b03167f2d19a99480f5a3ef68b4447c6cca94ffc19c61d91a3baa80d015f30cfb2b46ac8888888686604051612fea959493929190615b7f565b60405180910390a25050505b505b85975050505050505050611931565b6001600160a01b03831661303057604051600160e51b62461bcd02815260040161053490615dfd565b6001600160a01b03821661305957604051600160e51b62461bcd02815260040161053490615cb6565b61309c81604051806060016040528060268152602001615f30602691396001600160a01b038616600090815260336020526040902054919063ffffffff61312316565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546130d1908263ffffffff6135e116565b6001600160a01b0380841660008181526033602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611281908590615be0565b6000818484111561314a57604051600160e51b62461bcd0281526004016105349190615ca5565b505050900390565b609d54604051600160e01b63f429f19b02815260009161010090046001600160a01b03169063f429f19b9061318b908590600401615a91565b60206040518083038186803b1580156131a357600080fd5b505afa1580156131b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131db91908101906152cd565b600160cb1b660acd2c286c2e6d02141561328357604051600160e11b637c06e5cd0281526001600160a01b0383169063f80dcb9a906132209088908890600401615e3a565b602060405180830381600087803b15801561323a57600080fd5b505af115801561324e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061327291908101906152af565b61327e57506000610733565b6133b5565b609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906132ba908690600401615be0565b60206040518083038186803b1580156132d257600080fd5b505afa1580156132e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061330a91908101906152af565b1515600114156133b557604051600160e01b6323b872dd0281526001600160a01b038316906323b872dd9061334790879030908a90600401615ae2565b602060405180830381600087803b15801561336157600080fd5b505af1158015613375573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061339991908101906152af565b5060006133a58361387e565b90506133b18682613919565b9550505b609d54604051600160e21b633cd163c502815260009182916101009091046001600160a01b03169063f3458f14906133f1908890600401615c8b565b60206040518083038186803b15801561340957600080fd5b505afa15801561341d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134419190810190615179565b6001600160a01b0316146134e657609f5460a054604051600160e11b634d3038fd0281526134df926001600160a01b031691639a6071fa91613487918991600401615bee565b602060405180830381600087803b1580156134a157600080fd5b505af11580156134b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134d991908101906152cd565b87613950565b90506135b0565b609f5460a054604051600160e11b633ce109830281526135ad926001600160a01b031691639a6071fa91889173__stringutils___________________________916379c213069161354091600290600590600401615c63565b60206040518083038186803b15801561355857600080fd5b505af415801561356c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061359091908101906152cd565b6040518363ffffffff1660e01b8152600401613487929190615c3c565b90505b6135ca8160a054600160c81b6669737375696e6702613dda565b90506135d8858288876143b6565b50949350505050565b6000828201838110156108da57604051600160e51b62461bcd02815260040161053490615cf6565b609d805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b604051600160e11b637aa9bf6f0281526000906001600160a01b0386169063f5537ede9061367490879087908790600401615ae2565b602060405180830381600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136c691908101906152af565b1561084b576001600160a01b03808516600090815260a4602081815260408084208a861680865290835281852095891685529282528084209284529190529020815481556001808301549082015560028083015490820155600380830154908201556004808301549082015560058083018054613746928401919061500f565b5050506001600160a01b03808516600090815260a4602090815260408083209389168352929052908120818155600181018290556002810182905560038101829055600481018290559061379d6005830182614ff1565b505060019050610733565b609d805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b303b1590565b8051610b4090603690602084019061505f565b6001600160a01b03811661382257604051600160e51b62461bcd02815260040161053490615cc6565b606a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606a80546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ba57600080fd5b505afa1580156138ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506138f291908101906153b2565b60ff1690506000613904601283613925565b600a0a670de0b6b3a764000002949350505050565b60006108da8383613950565b60008282111561394a57604051600160e51b62461bcd02815260040161053490615d50565b50900390565b600082820283158061396a57508284828161396757fe5b04145b61398957604051600160e51b62461bcd02815260040161053490615e1d565b670de0b6b3a764000090049392505050565b6000828201838110156108da57604051600160e51b62461bcd02815260040161053490615dcd565b6000816139e557604051600160e51b62461bcd02815260040161053490615ded565b826139f2575060006104f5565b670de0b6b3a764000083810290848281613a0857fe5b0414613a2957604051600160e51b62461bcd02815260040161053490615ddd565b828181613a3257fe5b049150506104f5565b600081613a515750670de0b6b3a76400006104f5565b82613a5e575060006104f5565b60ff83901c15613a8357604051600160e51b62461bcd02815260040161053490615dbd565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f765328310613abe57604051600160e51b62461bcd02815260040161053490615d9d565b826000670c7d713b49da000083138015613adf5750670f43fc2c04ee000083125b15613b16576000613aef846145f5565b9050670de0b6b3a764000080820784020583670de0b6b3a764000083050201915050613b24565b81613b208461471c565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590613b52575068070c1cc73b00c800008113155b613b7157604051600160e51b62461bcd02815260040161053490615dad565b613b7a81614abc565b9695505050505050565b600160c01b6770757263686173650260005260a66020527f95e04c774f5d7102215d947fc04704fee03cb432f0f1423f54aa614882e9492254429060ff1615613bcc57600080fd5b600160c01b6770757263686173650260005260a66020527f95e04c774f5d7102215d947fc04704fee03cb432f0f1423f54aa614882e94922805460ff19166001179055604051600160e11b637aa9bf6f0281526001600160a01b0384169063f5537ede90613c429085908c908c90600401615ae2565b602060405180830381600087803b158015613c5c57600080fd5b505af1158015613c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613c9491908101906152af565b15613d9057613ca4848784614208565b6001600160a01b03808316600090815260a360209081526040808320878516808552818452918420600581018054600181018255908652848620018054968f166001600160a01b0319909716969096179095559252526004810154613d09908961399b565b6001600160a01b03808516600090815260a36020908152604080832093891683529290522060040155613d4189848a8a8a878a614eaf565b886001600160a01b03167f4a4fcb3c9b6849f5cb3825d707d3fce0c615b52367c65422a3ad74816ab327538560a1548b8a8c88604051613d8696959493929190615b0a565b60405180910390a2505b5050600160c01b67707572636861736502600052505060a660205250507f95e04c774f5d7102215d947fc04704fee03cb432f0f1423f54aa614882e94922805460ff191690555050565b600080600083600160c81b6669737375696e67021415613e7c57609e54604051600160e01b63e5f3d3a50281526001600160a01b039091169063e5f3d3a590613e2590600401615e2d565b60206040518083038186803b158015613e3d57600080fd5b505afa158015613e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e7591908101906152cd565b9150613f18565b83600160b11b693932b232b6b83a34b7b7021415613f1857609e54604051600160e01b63e5f3d3a50281526001600160a01b039091169063e5f3d3a590613ec590600401615d60565b60206040518083038186803b158015613edd57600080fd5b505afa158015613ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f1591908101906152cd565b91505b81156141fe57609e5460408051600160e01b63c561d4b702815290516000926001600160a01b03169163c561d4b7916004808301926020929190829003018186803b158015613f6657600080fd5b505afa158015613f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f9e9190810190615179565b609d54604051600160e21b633444c8b50281529192506000916101009091046001600160a01b03169063d11322d490613fdb908a90600401615be0565b60206040518083038186803b158015613ff357600080fd5b505afa158015614007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061402b91908101906152af565b156140be57609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990614067908a90600401615be0565b60206040518083038186803b15801561407f57600080fd5b505afa158015614093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506140b79190810190615179565b9050614148565b609d54604051600160e21b633cd163c50281526101009091046001600160a01b03169063f3458f14906140f5908a90600401615c8b565b60206040518083038186803b15801561410d57600080fd5b505afa158015614121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141459190810190615179565b90505b6001600160a01b038216156141fb57806001600160a01b031663a9059cbb83614171878c613950565b6040518363ffffffff1660e01b815260040161418e929190615b64565b602060405180830381600087803b1580156141a857600080fd5b505af11580156141bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141e091908101906152af565b506141ef88611707868b613950565b94506108da9350505050565b50505b5093949350505050565b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b9061423f908690600401615a91565b60206040518083038186803b15801561425757600080fd5b505afa15801561426b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061428f91908101906152cd565b600160cb1b660acd2c286c2e6d02141561432c57604051600160e01b63da49588b0281526001600160a01b0384169063da49588b906142d49085908590600401615e3a565b602060405180830381600087803b1580156142ee57600080fd5b505af1158015614302573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061432691908101906152cd565b506143b1565b604051600160e01b63a9059cbb0281526001600160a01b0384169063a9059cbb9061435d9084908690600401615b64565b602060405180830381600087803b15801561437757600080fd5b505af115801561438b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143af91908101906152af565b505b505050565b609d5460a25460a15460405142936000936001600160a01b03610100909204821693638d5040cc9391909216918a916143f59083908990602001615a56565b604051602081830303815290604052805190602001206040518563ffffffff1660e01b815260040161442a9493929190615aad565b602060405180830381600087803b15801561444457600080fd5b505af1158015614458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061447c9190810190615179565b604051600160e11b6310f29c1d02815290915081906001600160a01b038216906321e5383a906144b2908a908a90600401615b64565b600060405180830381600087803b1580156144cc57600080fd5b505af11580156144e0573d6000803e3d6000fd5b5050604051600160e11b63723434470281526001600160a01b038416925063e468688e9150614513908990600401615be0565b600060405180830381600087803b15801561452d57600080fd5b505af1158015614541573d6000803e3d6000fd5b505060a580546001810182556000919091527fb29a2b3b6f2ff1b765777a231725941da5072cc4fcc30ac4a2ce09706e8ddeff0180546001600160a01b0319166001600160a01b0386161790555061459f9050878787878787614f59565b866001600160a01b03167ff9e043edf72c472f6956335dea3cb1ca7150f556bca6cb2381be218f47a779f18360a15489888a896040516145e496959493929190615b0a565b60405180910390a250505050505050565b670de0b6b3a7640000026000806ec097ce7bc90715b34b9f1000000000808401906ec097ce7bc90715b34b9f0fffffffff198501028161463157fe5b05905060006ec097ce7bc90715b34b9f100000000082800205905081806ec097ce7bc90715b34b9f100000000081840205915060038205016ec097ce7bc90715b34b9f100000000082840205915060058205016ec097ce7bc90715b34b9f100000000082840205915060078205016ec097ce7bc90715b34b9f100000000082840205915060098205016ec097ce7bc90715b34b9f1000000000828402059150600b8205016ec097ce7bc90715b34b9f1000000000828402059150600d8205016ec097ce7bc90715b34b9f1000000000828402059150600f826002919005919091010295945050505050565b6000670de0b6b3a76400008212156147595761474f826ec097ce7bc90715b34b9f10000000008161474957fe5b0561471c565b6000039050610bdc565b60007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c000000000000083126147aa57770195e54c5dd42177f53a27172fa9ec630262827000000000830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e00000083126147e2576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff0084000831261482a576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312614865576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261489c57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126148d357690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126149085768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261493357680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614968576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831261499d576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126149d1576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312614a05576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281614a2857fe5b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff198212158015614ae1575068070c1cc73b00c800008213155b614b0057604051600160e51b62461bcd02815260040161053490615d30565b6000821215614b3457614b1582600003614abc565b6ec097ce7bc90715b34b9f100000000081614b2c57fe5b059050610bdc565b60006806f05b59d3b20000008312614b7457506806f05b59d3b1ffffff1990910190770195e54c5dd42177f53a27172fa9ec630262827000000000614baa565b6803782dace9d90000008312614ba657506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380614baa565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412614bfa5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412614c36576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412614c7057682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412614caa576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412614ce357680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412614d1c5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412614d55576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412614d8e5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b03878116600090815260a460209081526040808320858516845282528220600581018054600181018255908452919092200180546001600160a01b031916928916929092179091556004810154614f0d908761399b565b60048201556001810154614f21908661399b565b6001820155600281018490556003810154614f4a90614f40908561399b565b6005830154614fbe565b60039091015550505050505050565b6001600160a01b03958616600081815260a36020908152604080832094909916825292835296872060058101805460018181018355918a529390982090920180546001600160a01b031916909117905593845593830191909155600282015560030155565b600081614fe057604051600160e51b62461bcd02815260040161053490615ded565b818381614fe957fe5b049392505050565b50805460008255906000526020600020908101906111cd91906150d5565b82805482825590600052602060002090810192821561504f5760005260206000209182015b8281111561504f578254825591600101919060010190615034565b5061505b9291506150ef565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150a057805160ff19168380011785556150cd565b828001600101855582156150cd579182015b828111156150cd5782518255916020019190600101906150b2565b5061505b9291505b6104da91905b8082111561505b57600081556001016150db565b6104da91905b8082111561505b5780546001600160a01b03191681556001016150f5565b60006108da8235615e9f565b60006108da8251615e9f565b60006108da8251615eaa565b60006108da82356104da565b60006108da82516104da565b60006108da8251615ebb565b60006020828403121561516d57600080fd5b60006107338484615113565b60006020828403121561518b57600080fd5b6000610733848461511f565b600080604083850312156151aa57600080fd5b60006151b68585615113565b92505060206151c785828601615113565b9150509250929050565b6000806000606084860312156151e657600080fd5b60006151f28686615113565b935050602061520386828701615113565b925050604061521486828701615137565b9150509250925092565b6000806000806080858703121561523457600080fd5b60006152408787615113565b945050602061525187828801615113565b935050604061526287828801615137565b925050606061527387828801615113565b91505092959194509250565b6000806040838503121561529257600080fd5b600061529e8585615113565b92505060206151c785828601615137565b6000602082840312156152c157600080fd5b6000610733848461512b565b6000602082840312156152df57600080fd5b60006107338484615143565b60008060008060008060c0878903121561530457600080fd5b60006153108989615137565b965050602061532189828a01615137565b955050604061533289828a01615113565b945050606061534389828a01615113565b935050608061535489828a01615113565b92505060a061536589828a01615113565b9150509295509295509295565b60006020828403121561538457600080fd5b60006107338484615137565b600080600080608085870312156153a657600080fd5b60006152408787615137565b6000602082840312156153c457600080fd5b6000610733848461514f565b60006153dc83836153f3565b505060200190565b6153ed81615ec1565b82525050565b6153ed81615e9f565b6153ed61540882615e9f565b615f0e565b600061541882615e92565b6154228185615e96565b935061542d83615e8c565b60005b828110156141fe576154438683516153d0565b955061544e82615e8c565b9150600101615430565b6153ed81615eaa565b6153ed816104da565b6153ed615476826104da565b6104da565b6153ed81615ecc565b600061548f82615e92565b6154998185615e96565b93506154a9818560208601615ee2565b6154b281615f1f565b9093019392505050565b60006154c9602383615e96565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464728152600160e81b6265737302602082015260400192915050565b6000615511602683615e96565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20618152600160d01b6564647265737302602082015260400192915050565b600061555c602283615e96565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472658152600160f01b61737302602082015260400192915050565b60006155a3601783615e96565b7f507572636861736520616d6f756e74206973207a65726f000000000000000000815260200192915050565b600160e91b623b32b9029052565b60006155ea601b83615e96565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600160cb1b660acd2c286c2e6d029052565b6000615635600f83615e96565b7f414d4c4120636865636b206661696c0000000000000000000000000000000000815260200192915050565b600061566e601083615e96565b7f494e56414c49445f4558504f4e454e5400000000000000000000000000000000815260200192915050565b60006156a7602083615e96565b7f556e737570706f7274656420636f6c6c61746572616c20666f72206973737565815260200192915050565b60006156e0600c83615e96565b7f5355425f4f564552464c4f570000000000000000000000000000000000000000815260200192915050565b600160b11b693932b232b6b83a34b7b7029052565b600160f11b6134b9029052565b600160f11b6132b9029052565b6000615748602083615e96565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000615781602183615e96565b7f5075726368617365206e6f74207769746820737570706f7274656420746f6b658152600160f91b603702602082015260400192915050565b60006157c7602e83615e96565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626581527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015260400192915050565b6000615826600f83615e96565b7f595f4f55545f4f465f424f554e44530000000000000000000000000000000000815260200192915050565b600061585f601583615e96565b7f50524f445543545f4f55545f4f465f424f554e44530000000000000000000000815260200192915050565b6000615898600f83615e96565b7f585f4f55545f4f465f424f554e44530000000000000000000000000000000000815260200192915050565b60006158d1600c83615e96565b7f4144445f4f564552464c4f570000000000000000000000000000000000000000815260200192915050565b600061590a600c83615e96565b7f4449565f494e5445524e414c0000000000000000000000000000000000000000815260200192915050565b6000615943600d83615e96565b7f5a45524f5f4449564953494f4e00000000000000000000000000000000000000815260200192915050565b600061597c602583615e96565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061648152600160d81b64647265737302602082015260400192915050565b60006159c6602483615e96565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152600160e01b637265737302602082015260400192915050565b6000615a0f600c83615e96565b7f4d554c5f4f564552464c4f570000000000000000000000000000000000000000815260200192915050565b600160c81b6669737375696e67029052565b6153ed81615ebb565b6000615a6282856153fc565b601482019150615a72828461546a565b5060200192915050565b6000615a88828461546a565b50602001919050565b602081016104f582846153f3565b602081016104f582846153e4565b60808101615abb82876153f3565b615ac860208301866153f3565b615ad56040830185615461565b6119316060830184615461565b60608101615af082866153f3565b615afd60208301856153f3565b6107336040830184615461565b60c08101615b1882896153f3565b615b256020830188615461565b615b326040830187615461565b615b3f6060830186615461565b615b4c6080830185615461565b615b5960a0830184615461565b979650505050505050565b60408101615b7282856153f3565b6108da6020830184615461565b60a08101615b8d82886153f3565b615b9a6020830187615461565b615ba76040830186615461565b615bb46060830185615461565b613b7a6080830184615461565b602080825281016108da818461540d565b602081016104f58284615458565b602081016104f58284615461565b60608101615bfc8285615461565b615c096020830184615461565b6108da604083016155cf565b60608101615c238285615461565b615c306020830184615461565b6108da60408301615721565b60608101615c4a8285615461565b615c576020830184615461565b6108da6040830161572e565b60608101615c718286615461565b615c7e602083018561547b565b610733604083018461547b565b60408101615c998284615461565b6104f560208301615616565b602080825281016108da8184615484565b602080825281016104f5816154bc565b602080825281016104f581615504565b602080825281016104f58161554f565b602080825281016104f581615596565b602080825281016104f5816155dd565b60408101615d1382615616565b6104f56020830184615461565b602080825281016104f581615628565b602080825281016104f581615661565b602080825281016104f58161569a565b602080825281016104f5816156d3565b60208101610bdc8261570c565b602080825281016104f58161573b565b602080825281016104f581615774565b602080825281016104f5816157ba565b602080825281016104f581615819565b602080825281016104f581615852565b602080825281016104f58161588b565b602080825281016104f5816158c4565b602080825281016104f5816158fd565b602080825281016104f581615936565b602080825281016104f58161596f565b602080825281016104f5816159b9565b602080825281016104f581615a02565b60208101610bdc82615a3b565b60408101615e488285615461565b6108da60208301846153f3565b60808101615e638287615461565b615ac86020830186615461565b60a08101615b8d8288615461565b602081016104f58284615a4d565b60200190565b5190565b90815260200190565b60006104f582615eaf565b151590565b6001600160a01b031690565b60ff1690565b60006104f582615ed7565b60006104f5826104da565b60006104f582615e9f565b60005b83811015615efd578181015183820152602001615ee5565b838111156143af5750506000910152565b60006104f58260006104f582615f29565b601f01601f191690565b60601b9056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72305820e1f057d6fbab7a747fca6ff87f1b20e04032098cac8523e4f78ed1cdd72a7d106c6578706572696d656e74616cf50037",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c806381ca86fe1161010f57806395d89b41116100a2578063c4d66de811610071578063c4d66de8146103f4578063d478b27414610407578063dd62ed3e1461041a578063f2fde38b1461042d576101f0565b806395d89b41146103be578063a457c2d7146103c6578063a9059cbb146103d9578063b187bd26146103ec576101f0565b80638b140f6b116100de5780638b140f6b146103795780638da5cb5b1461038e5780638f32d59b146103a35780638fba9c7c146103ab576101f0565b806381ca86fe146103435780638456cb5914610356578063887b6abc1461035e57806389d29c4c14610366576101f0565b8063313ce56711610187578063410a6c7d11610156578063410a6c7d146102f25780636b98f8351461031557806370a0823114610328578063715018a61461033b576101f0565b8063313ce5671461029c57806339509351146102b157806339baf480146102c45780633f4ba83a146102e8576101f0565b80631f6fbfae116101c35780631f6fbfae1461025057806320f46de11461026357806323b872dd146102765780633138088814610289576101f0565b80630484d542146101f557806306fdde0314610213578063095ea7b31461022857806318160ddd14610248575b600080fd5b6101fd610440565b60405161020a9190615be0565b60405180910390f35b61021b610446565b60405161020a9190615ca5565b61023b61023636600461527f565b6104dd565b60405161020a9190615bd2565b6101fd6104fb565b61023b61025e366004615390565b610501565b61023b610271366004615390565b61073b565b61023b6102843660046151d1565b610853565b61023b610297366004615390565b6108e1565b6102a4610a51565b60405161020a9190615e7e565b61023b6102bf36600461527f565b610a56565b6102d76102d2366004615197565b610aaa565b60405161020a959493929190615e70565b6102f0610ae4565b005b610305610300366004615197565b610b44565b60405161020a9493929190615e55565b6102d7610323366004615197565b610b88565b6101fd61033636600461515b565b610bc2565b6102f0610be1565b61023b61035136600461521e565b610c52565b6102f0610d20565b6101fd610d7c565b6102f06103743660046152eb565b610d82565b610381610eac565b60405161020a9190615bc1565b610396610f0d565b60405161020a9190615a91565b61023b610f1c565b6102d76103b9366004615197565b610f42565b61021b610f8a565b61023b6103d436600461527f565b610feb565b61023b6103e736600461527f565b611059565b61023b61106d565b6102f061040236600461515b565b611076565b610396610415366004615372565b61114b565b6101fd610428366004615197565b611172565b6102f061043b36600461515b565b61119d565b60a05481565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b820191906000526020600020905b8154815290600101906020018083116104b557829003601f168201915b505050505090505b90565b60006104f16104ea6111d0565b84846111d4565b5060015b92915050565b60355490565b609d5460009060ff161561051457600080fd5b8461053d57604051600160e51b62461bcd02815260040161053490615ce6565b60405180910390fd5b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b90610574903390600401615a9f565b60206040518083038186803b15801561058c57600080fd5b505afa1580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105c491908101906152cd565b600160a11b6b2b34b0a137b7322a37b5b2b702146105e157600080fd5b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b90610618908590600401615a91565b60206040518083038186803b15801561063057600080fd5b505afa158015610644573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061066891908101906152cd565b600160cb1b660acd2c286c2e6d0214806107045750609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906106b4908690600401615be0565b60206040518083038186803b1580156106cc57600080fd5b505afa1580156106e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061070491908101906152af565b61072357604051600160e51b62461bcd02815260040161053490615d7d565b610730858585853361128e565b90505b949350505050565b609d5460009060ff161561074e57600080fd5b6107578461193a565b151560011461077b57604051600160e51b62461bcd02815260040161053490615d20565b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b906107b2903390600401615a9f565b60206040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061080291908101906152cd565b600160a11b6b2b34b0a137b7322a37b5b2b7021461081f57600080fd5b61083e858585600160a11b6b21b0b9b42a3930b739b332b90286611a75565b1561084b57506001610733565b506000610733565b6000610860848484613007565b6108d68461086c6111d0565b6108d185604051806060016040528060288152602001615f56602891396001600160a01b038a166000908152603460205260408120906108aa6111d0565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61312316565b6111d4565b5060015b9392505050565b609d5460009060ff16156108f457600080fd5b8260a054141561090357600080fd5b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b9061093a903390600401615a9f565b60206040518083038186803b15801561095257600080fd5b505afa158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061098a91908101906152cd565b600160cb1b660acd2c286c2e6d021480610a265750609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906109d6908690600401615be0565b60206040518083038186803b1580156109ee57600080fd5b505afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a2691908101906152af565b610a4557604051600160e51b62461bcd02815260040161053490615d40565b61073085858585613152565b601290565b60006104f1610a636111d0565b846108d18560346000610a746111d0565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135e116565b60a3602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b609d54339061010090046001600160a01b0316610aff610f0d565b6001600160a01b0316826001600160a01b03161480610b2f5750806001600160a01b0316826001600160a01b0316145b610b3857600080fd5b610b40613609565b5050565b6001600160a01b03918216600090815260a3602090815260408083209390941682529190915220600481015460018201546002830154600390930154919390929190565b60a4602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b6001600160a01b0381166000908152603360205260409020545b919050565b610be9610f1c565b610c0857604051600160e51b62461bcd02815260040161053490615d6d565b606a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606a80546001600160a01b0319169055565b609d5460009060ff1615610c6557600080fd5b610c6e8561193a565b1515600114610c7c57600080fd5b610c858461193a565b1515600114610c9357600080fd5b6001600160a01b0384163014801590610cbd5750816001600160a01b0316846001600160a01b0316145b15610ce45761083e838660a154600160991b6c2a37b5b2b72a3930b739b332b90286611a75565b6001600160a01b03808616600090815260a4602090815260408083209386168352929052206004015483141561084b5761083e8286868661363e565b609d54339061010090046001600160a01b0316610d3b610f0d565b6001600160a01b0316826001600160a01b03161480610d6b5750806001600160a01b0316826001600160a01b0316145b610d7457600080fd5b610b406137a8565b60a15481565b600054610100900460ff1680610d9b5750610d9b6137e0565b80610da9575060005460ff16155b610dc857604051600160e51b62461bcd02815260040161053490615d8d565b600054610100900460ff16158015610df3576000805460ff1961ff0019909116610100171660011790555b610dfc85611076565b609d8054610100600160a81b0319163361010002179055609f80546001600160a01b0319166001600160a01b038616179055604051610e5790610e43908990602001615a7c565b6040516020818303038152906040526137e6565b60a187905560a086905560a280546001600160a01b038086166001600160a01b031992831617909255609e8054928516929091169190911790558015610ea3576000805461ff00191690555b50505050505050565b606060a58054806020026020016040519081016040528092919081815260200182805480156104d257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ee6575050505050905090565b606a546001600160a01b031690565b606a546000906001600160a01b0316610f336111d0565b6001600160a01b031614905090565b6001600160a01b03918216600090815260a360209081526040808320939094168252919091522080546004820154600183015460028401546003909401549294919390929091565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d25780601f106104a7576101008083540402835291602001916104d2565b60006104f1610ff86111d0565b846108d185604051806060016040528060258152602001615f7e60259139603460006110226111d0565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61312316565b60006104f16110666111d0565b8484613007565b609d5460ff1690565b600054610100900460ff168061108f575061108f6137e0565b8061109d575060005460ff16155b6110bc57604051600160e51b62461bcd02815260040161053490615d8d565b600054610100900460ff161580156110e7576000805460ff1961ff0019909116610100171660011790555b606a80546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015610b40576000805461ff00191690555050565b60a5818154811061115857fe5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6111a5610f1c565b6111c457604051600160e51b62461bcd02815260040161053490615d6d565b6111cd816137f9565b50565b3390565b6001600160a01b0383166111fd57604051600160e51b62461bcd02815260040161053490615e0d565b6001600160a01b03821661122657604051600160e51b62461bcd02815260040161053490615cd6565b6001600160a01b0380841660008181526034602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611281908590615be0565b60405180910390a3505050565b609d54604051600160e01b63f429f19b02815260009161010090046001600160a01b03169063f429f19b906112c7908690600401615a91565b60206040518083038186803b1580156112df57600080fd5b505afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061131791908101906152cd565b600160cb1b660acd2c286c2e6d0214156113bf57604051600160e11b637c06e5cd0281526001600160a01b0384169063f80dcb9a9061135c9089908990600401615e3a565b602060405180830381600087803b15801561137657600080fd5b505af115801561138a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113ae91908101906152af565b6113ba57506000611931565b6114f1565b609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906113f6908790600401615be0565b60206040518083038186803b15801561140e57600080fd5b505afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061144691908101906152af565b1515600114156114f157604051600160e01b6323b872dd0281526001600160a01b038416906323b872dd9061148390889030908b90600401615ae2565b602060405180830381600087803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114d591908101906152af565b5060006114e18461387e565b90506114ed8782613919565b9650505b6000806000808590506000816001600160a01b031663525564216040518163ffffffff1660e01b815260040160206040518083038186803b15801561153557600080fd5b505afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061156d9190810190615179565b609d54604051600160e11b632d7a39850281529192506000916101009091046001600160a01b031690635af4730a906115aa908b90600401615a91565b60206040518083038186803b1580156115c257600080fd5b505afa1580156115d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115fa91908101906152cd565b1561168b57609d54604051600160e11b632d7a39850281526101009091046001600160a01b031690635af4730a90611636908b90600401615a91565b60206040518083038186803b15801561164e57600080fd5b505afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061168691908101906152cd565b611691565b6301e133805b6001600160a01b03808416600090815260a360209081526040808320938d16835292905220600301549091506116c8904290613925565b15611711576001600160a01b03808316600090815260a360209081526040808320938c168352929052206003015461170c908290611707904290613925565b613925565b611713565b805b905060a0548a1461187657609f5460a054604051600160e11b634d3038fd0281526001600160a01b0390921691639a6071fa91611755918e9190600401615c3c565b602060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117a791908101906152cd565b609f5460a054604051600160e11b634d3038fd0281529298506001600160a01b0390911691639a6071fa916117e1918e9190600401615c15565b602060405180830381600087803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061183391908101906152cd565b945061186f6118428d88613950565b61186a611857670de0b6b3a76400008961399b565b611865856301e133806139c3565b613a3b565b613950565b935061191b565b609f54604051600160e11b634d3038fd0281526001600160a01b0390911690639a6071fa906118ab908d908190600401615c15565b602060405180830381600087803b1580156118c557600080fd5b505af11580156118d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118fd91908101906152cd565b94506119188c61186a611857670de0b6b3a76400008961399b565b93505b61192a8b858e8d8d8d88613b84565b5050505050505b95945050505050565b600080609d60019054906101000a90046001600160a01b03166001600160a01b03166359dc735c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561198b57600080fd5b505afa15801561199f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119c39190810190615179565b90506001600160a01b0381166119dd576001915050610bdc565b604051600160e01b633a2910330281526001600160a01b03821690633a29103390611a0c908690600401615a91565b60206040518083038186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a5c91908101906152af565b15611a6b576001915050610bdc565b6000915050610bdc565b600082600160991b6c2a37b5b2b72a3930b739b332b9021415612689576001600160a01b03808616600090815260a4602090815260408083209386168352929052908120600401548714156121f0576001600160a01b03808716600090815260a46020908152604080832093871683529290522060030154156121eb576001600160a01b03808716600090815260a460209081526040808320938716835292905290812060050180548290611b2657fe5b60009182526020808320909101546001600160a01b038a8116845260a48352604080852089831686529093529183206005018054929091169350611c2791611bb1918c9160a39186918290611b7757fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938c168252929092529020546139c3565b6001600160a01b03808b16600090815260a460209081526040808320938b168352929052908120600501805460a39291908290611bea57fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938b16825292909252902060010154613950565b6001600160a01b03808a16600090815260a460209081526040808320938a1683529290522060030154909150611ca190829061186a90611c68904290613925565b6001600160a01b03808716600090815260a360209081526040808320938d1683529290522060030154611c9c904290613925565b6139c3565b600160a91b6a3634b8bab4b230ba34b7b70260005260a66020527f05a2a80dc0a06b85519a095f2ba9850854a353af20abe08d4a96b5be13553e055490915060ff1615611ced57600080fd5b7f05a2a80dc0a06b85519a095f2ba9850854a353af20abe08d4a96b5be13553e05805460ff191660011790556001600160a01b03888116600090815260a4602090815260408083209389168352929052908120600501805460a39183918290611d5257fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938a168252929092529020600201549050611da78282600160b11b693932b232b6b83a34b7b702613dda565b609d54604051600160e21b633444c8b50281529193506000916101009091046001600160a01b03169063d11322d490611de4908590600401615be0565b60206040518083038186803b158015611dfc57600080fd5b505afa158015611e10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e3491908101906152af565b15611ec757609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990611e70908590600401615be0565b60206040518083038186803b158015611e8857600080fd5b505afa158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ec09190810190615179565b9050611f51565b609d54604051600160e01b632ea779170281526101009091046001600160a01b031690632ea7791790611efe908590600401615d06565b60206040518083038186803b158015611f1657600080fd5b505afa158015611f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f4e9190810190615179565b90505b611f5c81848c614208565b604051600160e21b6320188d110281526001600160a01b03881690638062344490611f8b908e90600401615be0565b600060405180830381600087803b158015611fa557600080fd5b505af1158015611fb9573d6000803e3d6000fd5b5050604051600160e11b635a393c830281526001600160a01b038a16925063b47279069150611fee908d908f90600401615b64565b600060405180830381600087803b15801561200857600080fd5b505af115801561201c573d6000803e3d6000fd5b50505050896001600160a01b03167f7684b39e31475e1a38b6e3a751004b3ecccbd7d0e1d54d9f43e8e7f1e4e7cb0d888d8c8787604051612061959493929190615b7f565b60405180910390a26001600160a01b03808516600090815260a360209081526040808320938b16835292905290812060050154905b81811015612148576001600160a01b03868116600090815260a3602090815260408083208d8516845290915290206005018054918e1691839081106120d757fe5b6000918252602090912001546001600160a01b03161415612140576001600160a01b03808716600090815260a360209081526040808320938d1683529290522060050180548290811061212657fe5b600091825260209091200180546001600160a01b03191690555b600101612096565b506001600160a01b03808c16600090815260a460209081526040808320938c168352929052908120818155600181018290556002810182905560038101829055600481018290559061219d6005830182614ff1565b50505050505050600160a91b6a3634b8bab4b230ba34b7b7026000525060a66020527f05a2a80dc0a06b85519a095f2ba9850854a353af20abe08d4a96b5be13553e05805460ff1916905560015b612682565b604051600160e01b63f8b2cb4f02815287906001600160a01b0385169063f8b2cb4f90612221908a90600401615a91565b602060405180830381600087803b15801561223b57600080fd5b505af115801561224f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061227391908101906152cd565b1061268257600160b11b693932b232b6b83a34b7b70260005260a66020527f4ca318e94f3e0d335d241b6d4b4bd718871e2e9666de12f792ed0b39946b33975460ff16156122c057600080fd5b7f4ca318e94f3e0d335d241b6d4b4bd718871e2e9666de12f792ed0b39946b3397805460ff191660011790556001600160a01b03868116600090815260a36020908152604080832093871683529290529081206002810154905490919061235a9061232c908b906139c3565b6001600160a01b03808b16600090815260a360209081526040808320938b1683529290522060010154613950565b90506123778183600160b11b693932b232b6b83a34b7b702613dda565b609d54604051600160e21b633444c8b50281529192506000916101009091046001600160a01b03169063d11322d4906123b4908690600401615be0565b60206040518083038186803b1580156123cc57600080fd5b505afa1580156123e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061240491908101906152af565b1561249757609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990612440908690600401615be0565b60206040518083038186803b15801561245857600080fd5b505afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124909190810190615179565b9050612521565b609d54604051600160e01b632ea779170281526101009091046001600160a01b031690632ea77917906124ce908690600401615d06565b60206040518083038186803b1580156124e657600080fd5b505afa1580156124fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061251e9190810190615179565b90505b61252c81838b614208565b604051600160e21b6320188d110281526001600160a01b0387169063806234449061255b908d90600401615be0565b600060405180830381600087803b15801561257557600080fd5b505af1158015612589573d6000803e3d6000fd5b5050604051600160e11b635a393c830281526001600160a01b038916925063b472790691506125be908c908e90600401615b64565b600060405180830381600087803b1580156125d857600080fd5b505af11580156125ec573d6000803e3d6000fd5b50505050886001600160a01b03167f2d19a99480f5a3ef68b4447c6cca94ffc19c61d91a3baa80d015f30cfb2b46ac878c8b8688604051612631959493929190615b7f565b60405180910390a25050600160b11b693932b232b6b83a34b7b702600052505060a66020527f4ca318e94f3e0d335d241b6d4b4bd718871e2e9666de12f792ed0b39946b3397805460ff1916905560015b9050611931565b82600160a11b6b21b0b9b42a3930b739b332b9021415611931576001600160a01b03808616600090815260a36020908152604080832093861683529290529081206003015481908190889086908b908a9015612ff857600160911b6d31b0b9b43932b232b6b83a34b7b70260005260a66020527fc7e5ed2b3e9d900337a6bb387eeedd4254c98cff1fa87210e05d9a4589549f235460ff161561272b57600080fd5b600160911b6d31b0b9b43932b232b6b83a34b7b70260005260a66020527fc7e5ed2b3e9d900337a6bb387eeedd4254c98cff1fa87210e05d9a4589549f238054600160ff19909116179055609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906127ad908490600401615be0565b60206040518083038186803b1580156127c557600080fd5b505afa1580156127d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127fd91908101906152af565b1561292257609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990612839908490600401615be0565b60206040518083038186803b15801561285157600080fd5b505afa158015612865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128899190810190615179565b965081876001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016128b89190615a91565b60206040518083038186803b1580156128d057600080fd5b505afa1580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061290891908101906152cd565b101561291d5785975050505050505050611931565b612a42565b609d54604051600160e01b632ea779170281526101009091046001600160a01b031690632ea7791790612959908490600401615d06565b60206040518083038186803b15801561297157600080fd5b505afa158015612985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129a99190810190615179565b604051600160e11b637c06e5cd0281529097506001600160a01b0388169063f80dcb9a906129dd9085908890600401615e3a565b602060405180830381600087803b1580156129f757600080fd5b505af1158015612a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a2f91908101906152af565b612a425785975050505050505050611931565b60005b6001600160a01b03808616600090815260a36020908152604080832093881683529290522060050154811015612e2c576001600160a01b03808616600090815260a3602090815260408083209388168352929052908120600501805483908110612aab57fe5b9060005260206000200160009054906101000a90046001600160a01b031690506000612b6d60a46000846001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206004015460a360008a6001600160a01b03166001600160a01b0316815260200190815260200160002060008f6001600160a01b03166001600160a01b03168152602001908152602001600020600001546139c3565b6001600160a01b03808916600090815260a360209081526040808320938b1683529290529081205491925090612ba4908390613950565b6001600160a01b03808516600090815260a460209081526040808320938c1683529290522060030154909150612c1990829061186a90612be5904290613925565b6001600160a01b03808d16600090815260a360209081526040808320938f1683529290522060030154611c9c904290613925565b90506001600160a01b038b1615801590612c335750600081115b15612d9257612c538186600160b11b693932b232b6b83a34b7b702613dda565b9050612c608b8285614208565b612c6a898261399b565b604051600160e21b6320188d110281529099506001600160a01b03881690638062344490612c9c908490600401615be0565b600060405180830381600087803b158015612cb657600080fd5b505af1158015612cca573d6000803e3d6000fd5b5050604051600160e11b635a393c830281526001600160a01b038a16925063b47279069150612cff9086908590600401615b64565b600060405180830381600087803b158015612d1957600080fd5b505af1158015612d2d573d6000803e3d6000fd5b5050506001600160a01b03808516600090815260a460209081526040808320938c1683529290522060040154612d64915082613925565b6001600160a01b03808516600090815260a460209081526040808320938c1683529290522060040155600199505b898015612dc557506001600160a01b03808416600090815260a460209081526040808320938b1683529290522060040154155b15612e21576001600160a01b03808416600090815260a460209081526040808320938b1683529290529081208181556001810182905560028101829055600381018290556004810182905590612e1e6005830182614ff1565b50505b505050600101612a45565b600160911b6d31b0b9b43932b232b6b83a34b7b70260005260a66020527fc7e5ed2b3e9d900337a6bb387eeedd4254c98cff1fa87210e05d9a4589549f23805460ff191690558615612ff6576001600160a01b03808616600090815260a360209081526040808320938816835292905290812060040154612eae9088906139c3565b6001600160a01b03808816600090815260a360209081526040808320938a1683529290529081206001015491925090612ee79083613950565b6001600160a01b03808916600090815260a360209081526040808320938b1683529290522060020154909150612f1e8b838a614208565b6001600160a01b03808916600090815260a360209081526040808320938b168352929052206005015460001901841415612fa9576001600160a01b03808916600090815260a360209081526040808320938b1683529290529081208181556001810182905560028101829055600381018290556004810182905590612fa66005830182614ff1565b50505b876001600160a01b03167f2d19a99480f5a3ef68b4447c6cca94ffc19c61d91a3baa80d015f30cfb2b46ac8888888686604051612fea959493929190615b7f565b60405180910390a25050505b505b85975050505050505050611931565b6001600160a01b03831661303057604051600160e51b62461bcd02815260040161053490615dfd565b6001600160a01b03821661305957604051600160e51b62461bcd02815260040161053490615cb6565b61309c81604051806060016040528060268152602001615f30602691396001600160a01b038616600090815260336020526040902054919063ffffffff61312316565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546130d1908263ffffffff6135e116565b6001600160a01b0380841660008181526033602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611281908590615be0565b6000818484111561314a57604051600160e51b62461bcd0281526004016105349190615ca5565b505050900390565b609d54604051600160e01b63f429f19b02815260009161010090046001600160a01b03169063f429f19b9061318b908590600401615a91565b60206040518083038186803b1580156131a357600080fd5b505afa1580156131b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131db91908101906152cd565b600160cb1b660acd2c286c2e6d02141561328357604051600160e11b637c06e5cd0281526001600160a01b0383169063f80dcb9a906132209088908890600401615e3a565b602060405180830381600087803b15801561323a57600080fd5b505af115801561324e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061327291908101906152af565b61327e57506000610733565b6133b5565b609d54604051600160e21b633444c8b50281526101009091046001600160a01b03169063d11322d4906132ba908690600401615be0565b60206040518083038186803b1580156132d257600080fd5b505afa1580156132e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061330a91908101906152af565b1515600114156133b557604051600160e01b6323b872dd0281526001600160a01b038316906323b872dd9061334790879030908a90600401615ae2565b602060405180830381600087803b15801561336157600080fd5b505af1158015613375573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061339991908101906152af565b5060006133a58361387e565b90506133b18682613919565b9550505b609d54604051600160e21b633cd163c502815260009182916101009091046001600160a01b03169063f3458f14906133f1908890600401615c8b565b60206040518083038186803b15801561340957600080fd5b505afa15801561341d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134419190810190615179565b6001600160a01b0316146134e657609f5460a054604051600160e11b634d3038fd0281526134df926001600160a01b031691639a6071fa91613487918991600401615bee565b602060405180830381600087803b1580156134a157600080fd5b505af11580156134b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134d991908101906152cd565b87613950565b90506135b0565b609f5460a054604051600160e11b633ce109830281526135ad926001600160a01b031691639a6071fa91889173__stringutils___________________________916379c213069161354091600290600590600401615c63565b60206040518083038186803b15801561355857600080fd5b505af415801561356c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061359091908101906152cd565b6040518363ffffffff1660e01b8152600401613487929190615c3c565b90505b6135ca8160a054600160c81b6669737375696e6702613dda565b90506135d8858288876143b6565b50949350505050565b6000828201838110156108da57604051600160e51b62461bcd02815260040161053490615cf6565b609d805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b604051600160e11b637aa9bf6f0281526000906001600160a01b0386169063f5537ede9061367490879087908790600401615ae2565b602060405180830381600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136c691908101906152af565b1561084b576001600160a01b03808516600090815260a4602081815260408084208a861680865290835281852095891685529282528084209284529190529020815481556001808301549082015560028083015490820155600380830154908201556004808301549082015560058083018054613746928401919061500f565b5050506001600160a01b03808516600090815260a4602090815260408083209389168352929052908120818155600181018290556002810182905560038101829055600481018290559061379d6005830182614ff1565b505060019050610733565b609d805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b303b1590565b8051610b4090603690602084019061505f565b6001600160a01b03811661382257604051600160e51b62461bcd02815260040161053490615cc6565b606a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606a80546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ba57600080fd5b505afa1580156138ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506138f291908101906153b2565b60ff1690506000613904601283613925565b600a0a670de0b6b3a764000002949350505050565b60006108da8383613950565b60008282111561394a57604051600160e51b62461bcd02815260040161053490615d50565b50900390565b600082820283158061396a57508284828161396757fe5b04145b61398957604051600160e51b62461bcd02815260040161053490615e1d565b670de0b6b3a764000090049392505050565b6000828201838110156108da57604051600160e51b62461bcd02815260040161053490615dcd565b6000816139e557604051600160e51b62461bcd02815260040161053490615ded565b826139f2575060006104f5565b670de0b6b3a764000083810290848281613a0857fe5b0414613a2957604051600160e51b62461bcd02815260040161053490615ddd565b828181613a3257fe5b049150506104f5565b600081613a515750670de0b6b3a76400006104f5565b82613a5e575060006104f5565b60ff83901c15613a8357604051600160e51b62461bcd02815260040161053490615dbd565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f765328310613abe57604051600160e51b62461bcd02815260040161053490615d9d565b826000670c7d713b49da000083138015613adf5750670f43fc2c04ee000083125b15613b16576000613aef846145f5565b9050670de0b6b3a764000080820784020583670de0b6b3a764000083050201915050613b24565b81613b208461471c565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590613b52575068070c1cc73b00c800008113155b613b7157604051600160e51b62461bcd02815260040161053490615dad565b613b7a81614abc565b9695505050505050565b600160c01b6770757263686173650260005260a66020527f95e04c774f5d7102215d947fc04704fee03cb432f0f1423f54aa614882e9492254429060ff1615613bcc57600080fd5b600160c01b6770757263686173650260005260a66020527f95e04c774f5d7102215d947fc04704fee03cb432f0f1423f54aa614882e94922805460ff19166001179055604051600160e11b637aa9bf6f0281526001600160a01b0384169063f5537ede90613c429085908c908c90600401615ae2565b602060405180830381600087803b158015613c5c57600080fd5b505af1158015613c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613c9491908101906152af565b15613d9057613ca4848784614208565b6001600160a01b03808316600090815260a360209081526040808320878516808552818452918420600581018054600181018255908652848620018054968f166001600160a01b0319909716969096179095559252526004810154613d09908961399b565b6001600160a01b03808516600090815260a36020908152604080832093891683529290522060040155613d4189848a8a8a878a614eaf565b886001600160a01b03167f4a4fcb3c9b6849f5cb3825d707d3fce0c615b52367c65422a3ad74816ab327538560a1548b8a8c88604051613d8696959493929190615b0a565b60405180910390a2505b5050600160c01b67707572636861736502600052505060a660205250507f95e04c774f5d7102215d947fc04704fee03cb432f0f1423f54aa614882e94922805460ff191690555050565b600080600083600160c81b6669737375696e67021415613e7c57609e54604051600160e01b63e5f3d3a50281526001600160a01b039091169063e5f3d3a590613e2590600401615e2d565b60206040518083038186803b158015613e3d57600080fd5b505afa158015613e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613e7591908101906152cd565b9150613f18565b83600160b11b693932b232b6b83a34b7b7021415613f1857609e54604051600160e01b63e5f3d3a50281526001600160a01b039091169063e5f3d3a590613ec590600401615d60565b60206040518083038186803b158015613edd57600080fd5b505afa158015613ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f1591908101906152cd565b91505b81156141fe57609e5460408051600160e01b63c561d4b702815290516000926001600160a01b03169163c561d4b7916004808301926020929190829003018186803b158015613f6657600080fd5b505afa158015613f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f9e9190810190615179565b609d54604051600160e21b633444c8b50281529192506000916101009091046001600160a01b03169063d11322d490613fdb908a90600401615be0565b60206040518083038186803b158015613ff357600080fd5b505afa158015614007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061402b91908101906152af565b156140be57609d54604051600160e01b63b94676290281526101009091046001600160a01b03169063b946762990614067908a90600401615be0565b60206040518083038186803b15801561407f57600080fd5b505afa158015614093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506140b79190810190615179565b9050614148565b609d54604051600160e21b633cd163c50281526101009091046001600160a01b03169063f3458f14906140f5908a90600401615c8b565b60206040518083038186803b15801561410d57600080fd5b505afa158015614121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141459190810190615179565b90505b6001600160a01b038216156141fb57806001600160a01b031663a9059cbb83614171878c613950565b6040518363ffffffff1660e01b815260040161418e929190615b64565b602060405180830381600087803b1580156141a857600080fd5b505af11580156141bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141e091908101906152af565b506141ef88611707868b613950565b94506108da9350505050565b50505b5093949350505050565b609d54604051600160e01b63f429f19b0281526101009091046001600160a01b03169063f429f19b9061423f908690600401615a91565b60206040518083038186803b15801561425757600080fd5b505afa15801561426b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061428f91908101906152cd565b600160cb1b660acd2c286c2e6d02141561432c57604051600160e01b63da49588b0281526001600160a01b0384169063da49588b906142d49085908590600401615e3a565b602060405180830381600087803b1580156142ee57600080fd5b505af1158015614302573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061432691908101906152cd565b506143b1565b604051600160e01b63a9059cbb0281526001600160a01b0384169063a9059cbb9061435d9084908690600401615b64565b602060405180830381600087803b15801561437757600080fd5b505af115801561438b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506143af91908101906152af565b505b505050565b609d5460a25460a15460405142936000936001600160a01b03610100909204821693638d5040cc9391909216918a916143f59083908990602001615a56565b604051602081830303815290604052805190602001206040518563ffffffff1660e01b815260040161442a9493929190615aad565b602060405180830381600087803b15801561444457600080fd5b505af1158015614458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061447c9190810190615179565b604051600160e11b6310f29c1d02815290915081906001600160a01b038216906321e5383a906144b2908a908a90600401615b64565b600060405180830381600087803b1580156144cc57600080fd5b505af11580156144e0573d6000803e3d6000fd5b5050604051600160e11b63723434470281526001600160a01b038416925063e468688e9150614513908990600401615be0565b600060405180830381600087803b15801561452d57600080fd5b505af1158015614541573d6000803e3d6000fd5b505060a580546001810182556000919091527fb29a2b3b6f2ff1b765777a231725941da5072cc4fcc30ac4a2ce09706e8ddeff0180546001600160a01b0319166001600160a01b0386161790555061459f9050878787878787614f59565b866001600160a01b03167ff9e043edf72c472f6956335dea3cb1ca7150f556bca6cb2381be218f47a779f18360a15489888a896040516145e496959493929190615b0a565b60405180910390a250505050505050565b670de0b6b3a7640000026000806ec097ce7bc90715b34b9f1000000000808401906ec097ce7bc90715b34b9f0fffffffff198501028161463157fe5b05905060006ec097ce7bc90715b34b9f100000000082800205905081806ec097ce7bc90715b34b9f100000000081840205915060038205016ec097ce7bc90715b34b9f100000000082840205915060058205016ec097ce7bc90715b34b9f100000000082840205915060078205016ec097ce7bc90715b34b9f100000000082840205915060098205016ec097ce7bc90715b34b9f1000000000828402059150600b8205016ec097ce7bc90715b34b9f1000000000828402059150600d8205016ec097ce7bc90715b34b9f1000000000828402059150600f826002919005919091010295945050505050565b6000670de0b6b3a76400008212156147595761474f826ec097ce7bc90715b34b9f10000000008161474957fe5b0561471c565b6000039050610bdc565b60007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c000000000000083126147aa57770195e54c5dd42177f53a27172fa9ec630262827000000000830592506806f05b59d3b2000000015b73011798004d755d3c8bc8e03204cf44619e00000083126147e2576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff0084000831261482a576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312614865576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261489c57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126148d357690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126149085768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261493357680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614968576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831261499d576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126149d1576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312614a05576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281614a2857fe5b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff198212158015614ae1575068070c1cc73b00c800008213155b614b0057604051600160e51b62461bcd02815260040161053490615d30565b6000821215614b3457614b1582600003614abc565b6ec097ce7bc90715b34b9f100000000081614b2c57fe5b059050610bdc565b60006806f05b59d3b20000008312614b7457506806f05b59d3b1ffffff1990910190770195e54c5dd42177f53a27172fa9ec630262827000000000614baa565b6803782dace9d90000008312614ba657506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380614baa565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412614bfa5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412614c36576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412614c7057682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412614caa576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412614ce357680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412614d1c5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412614d55576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412614d8e5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b03878116600090815260a460209081526040808320858516845282528220600581018054600181018255908452919092200180546001600160a01b031916928916929092179091556004810154614f0d908761399b565b60048201556001810154614f21908661399b565b6001820155600281018490556003810154614f4a90614f40908561399b565b6005830154614fbe565b60039091015550505050505050565b6001600160a01b03958616600081815260a36020908152604080832094909916825292835296872060058101805460018181018355918a529390982090920180546001600160a01b031916909117905593845593830191909155600282015560030155565b600081614fe057604051600160e51b62461bcd02815260040161053490615ded565b818381614fe957fe5b049392505050565b50805460008255906000526020600020908101906111cd91906150d5565b82805482825590600052602060002090810192821561504f5760005260206000209182015b8281111561504f578254825591600101919060010190615034565b5061505b9291506150ef565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150a057805160ff19168380011785556150cd565b828001600101855582156150cd579182015b828111156150cd5782518255916020019190600101906150b2565b5061505b9291505b6104da91905b8082111561505b57600081556001016150db565b6104da91905b8082111561505b5780546001600160a01b03191681556001016150f5565b60006108da8235615e9f565b60006108da8251615e9f565b60006108da8251615eaa565b60006108da82356104da565b60006108da82516104da565b60006108da8251615ebb565b60006020828403121561516d57600080fd5b60006107338484615113565b60006020828403121561518b57600080fd5b6000610733848461511f565b600080604083850312156151aa57600080fd5b60006151b68585615113565b92505060206151c785828601615113565b9150509250929050565b6000806000606084860312156151e657600080fd5b60006151f28686615113565b935050602061520386828701615113565b925050604061521486828701615137565b9150509250925092565b6000806000806080858703121561523457600080fd5b60006152408787615113565b945050602061525187828801615113565b935050604061526287828801615137565b925050606061527387828801615113565b91505092959194509250565b6000806040838503121561529257600080fd5b600061529e8585615113565b92505060206151c785828601615137565b6000602082840312156152c157600080fd5b6000610733848461512b565b6000602082840312156152df57600080fd5b60006107338484615143565b60008060008060008060c0878903121561530457600080fd5b60006153108989615137565b965050602061532189828a01615137565b955050604061533289828a01615113565b945050606061534389828a01615113565b935050608061535489828a01615113565b92505060a061536589828a01615113565b9150509295509295509295565b60006020828403121561538457600080fd5b60006107338484615137565b600080600080608085870312156153a657600080fd5b60006152408787615137565b6000602082840312156153c457600080fd5b6000610733848461514f565b60006153dc83836153f3565b505060200190565b6153ed81615ec1565b82525050565b6153ed81615e9f565b6153ed61540882615e9f565b615f0e565b600061541882615e92565b6154228185615e96565b935061542d83615e8c565b60005b828110156141fe576154438683516153d0565b955061544e82615e8c565b9150600101615430565b6153ed81615eaa565b6153ed816104da565b6153ed615476826104da565b6104da565b6153ed81615ecc565b600061548f82615e92565b6154998185615e96565b93506154a9818560208601615ee2565b6154b281615f1f565b9093019392505050565b60006154c9602383615e96565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464728152600160e81b6265737302602082015260400192915050565b6000615511602683615e96565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20618152600160d01b6564647265737302602082015260400192915050565b600061555c602283615e96565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472658152600160f01b61737302602082015260400192915050565b60006155a3601783615e96565b7f507572636861736520616d6f756e74206973207a65726f000000000000000000815260200192915050565b600160e91b623b32b9029052565b60006155ea601b83615e96565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600160cb1b660acd2c286c2e6d029052565b6000615635600f83615e96565b7f414d4c4120636865636b206661696c0000000000000000000000000000000000815260200192915050565b600061566e601083615e96565b7f494e56414c49445f4558504f4e454e5400000000000000000000000000000000815260200192915050565b60006156a7602083615e96565b7f556e737570706f7274656420636f6c6c61746572616c20666f72206973737565815260200192915050565b60006156e0600c83615e96565b7f5355425f4f564552464c4f570000000000000000000000000000000000000000815260200192915050565b600160b11b693932b232b6b83a34b7b7029052565b600160f11b6134b9029052565b600160f11b6132b9029052565b6000615748602083615e96565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000615781602183615e96565b7f5075726368617365206e6f74207769746820737570706f7274656420746f6b658152600160f91b603702602082015260400192915050565b60006157c7602e83615e96565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626581527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015260400192915050565b6000615826600f83615e96565b7f595f4f55545f4f465f424f554e44530000000000000000000000000000000000815260200192915050565b600061585f601583615e96565b7f50524f445543545f4f55545f4f465f424f554e44530000000000000000000000815260200192915050565b6000615898600f83615e96565b7f585f4f55545f4f465f424f554e44530000000000000000000000000000000000815260200192915050565b60006158d1600c83615e96565b7f4144445f4f564552464c4f570000000000000000000000000000000000000000815260200192915050565b600061590a600c83615e96565b7f4449565f494e5445524e414c0000000000000000000000000000000000000000815260200192915050565b6000615943600d83615e96565b7f5a45524f5f4449564953494f4e00000000000000000000000000000000000000815260200192915050565b600061597c602583615e96565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061648152600160d81b64647265737302602082015260400192915050565b60006159c6602483615e96565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152600160e01b637265737302602082015260400192915050565b6000615a0f600c83615e96565b7f4d554c5f4f564552464c4f570000000000000000000000000000000000000000815260200192915050565b600160c81b6669737375696e67029052565b6153ed81615ebb565b6000615a6282856153fc565b601482019150615a72828461546a565b5060200192915050565b6000615a88828461546a565b50602001919050565b602081016104f582846153f3565b602081016104f582846153e4565b60808101615abb82876153f3565b615ac860208301866153f3565b615ad56040830185615461565b6119316060830184615461565b60608101615af082866153f3565b615afd60208301856153f3565b6107336040830184615461565b60c08101615b1882896153f3565b615b256020830188615461565b615b326040830187615461565b615b3f6060830186615461565b615b4c6080830185615461565b615b5960a0830184615461565b979650505050505050565b60408101615b7282856153f3565b6108da6020830184615461565b60a08101615b8d82886153f3565b615b9a6020830187615461565b615ba76040830186615461565b615bb46060830185615461565b613b7a6080830184615461565b602080825281016108da818461540d565b602081016104f58284615458565b602081016104f58284615461565b60608101615bfc8285615461565b615c096020830184615461565b6108da604083016155cf565b60608101615c238285615461565b615c306020830184615461565b6108da60408301615721565b60608101615c4a8285615461565b615c576020830184615461565b6108da6040830161572e565b60608101615c718286615461565b615c7e602083018561547b565b610733604083018461547b565b60408101615c998284615461565b6104f560208301615616565b602080825281016108da8184615484565b602080825281016104f5816154bc565b602080825281016104f581615504565b602080825281016104f58161554f565b602080825281016104f581615596565b602080825281016104f5816155dd565b60408101615d1382615616565b6104f56020830184615461565b602080825281016104f581615628565b602080825281016104f581615661565b602080825281016104f58161569a565b602080825281016104f5816156d3565b60208101610bdc8261570c565b602080825281016104f58161573b565b602080825281016104f581615774565b602080825281016104f5816157ba565b602080825281016104f581615819565b602080825281016104f581615852565b602080825281016104f58161588b565b602080825281016104f5816158c4565b602080825281016104f5816158fd565b602080825281016104f581615936565b602080825281016104f58161596f565b602080825281016104f5816159b9565b602080825281016104f581615a02565b60208101610bdc82615a3b565b60408101615e488285615461565b6108da60208301846153f3565b60808101615e638287615461565b615ac86020830186615461565b60a08101615b8d8288615461565b602081016104f58284615a4d565b60200190565b5190565b90815260200190565b60006104f582615eaf565b151590565b6001600160a01b031690565b60ff1690565b60006104f582615ed7565b60006104f5826104da565b60006104f582615e9f565b60005b83811015615efd578181015183820152602001615ee5565b838111156143af5750506000910152565b60006104f58260006104f582615f29565b601f01601f191690565b60601b9056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72305820e1f057d6fbab7a747fca6ff87f1b20e04032098cac8523e4f78ed1cdd72a7d106c6578706572696d656e74616cf50037",
    "sourceMap": "803:27937:14:-;;;;;;;;;",
    "deployedSourceMap": "803:27937:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;803:27937:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1198:27;;;:::i;:::-;;;;;;;;;;;;;;;;1999:83:32;;;:::i;:::-;;;;;;;;4238:152;;;;;;;;;:::i;:::-;;;;;;;;3259:91;;;:::i;6930:681:14:-;;;;;;;;;:::i;12507:702::-;;;;;;;;;:::i;4862:304:32:-;;;;;;;;;:::i;3097:626:14:-;;;;;;;;;:::i;3118:76:32:-;;;:::i;:::-;;;;;;;;5575:210;;;;;;;;;:::i;1468:67:14:-;;;;;;;;;:::i;:::-;;;;;;;;;;;;27887:102;;;:::i;:::-;;25816:390;;;;;;;;;:::i;:::-;;;;;;;;;;;1661:70;;;;;;;;;:::i;3413:110:32:-;;;;;;;;;:::i;1746:137:2:-;;;:::i;23557:1279:14:-;;;;;;;;;:::i;27783:98::-;;;:::i;1270:23::-;;;:::i;2607:482::-;;;;;;;;;:::i;25270:96::-;;;:::i;:::-;;;;;;;;959:77:2;;;:::i;:::-;;;;;;;;1310:92;;;:::i;25374:434:14:-;;;;;;;;;:::i;2288:87:32:-;;;:::i;6288:261::-;;;;;;;;;:::i;3736:158::-;;;;;;;;;:::i;762:79:33:-;;;:::i;741:142:2:-;;;;;;;;;:::i;1834:28:14:-;;;;;;;;;:::i;3957:134:32:-;;;;;;;;;:::i;2032:107:2:-;;;;;;;;;:::i;1198:27:14:-;;;;:::o;1999:83:32:-;2069:5;2062:12;;;;;;;;-1:-1:-1;;2062:12:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2036:13;;2062:12;;2069:5;;2062:12;;2069:5;2062:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1999:83;;:::o;4238:152::-;4304:4;4321:39;4330:12;:10;:12::i;:::-;4344:7;4353:6;4321:8;:39::i;:::-;-1:-1:-1;4378:4:32;4238:152;;;;;:::o;3259:91::-;3330:12;;3259:91;:::o;6930:681:14:-;7107:6;;7043:4;;7107:6;;:15;7099:24;;;;;;7192:11;7184:47;;;;-1:-1:-1;;;;;7184:47:14;;;;;;;;;;;;;;;;;7340:7;;:27;;-1:-1:-1;;;;;7340:27:14;;:7;;;;-1:-1:-1;;;;;7340:7:14;;:15;;:27;;7356:10;;7340:27;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7340:27:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7340:27:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7340:27:14;;;;;;;;;-1:-1:-1;;;;;7340:45:14;7332:54;;;;;;7405:7;;:29;;-1:-1:-1;;;;;7405:29:14;;:7;;;;-1:-1:-1;;;;;7405:7:14;;:15;;:29;;7421:12;;7405:29;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7405:29:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7405:29:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7405:29:14;;;;;;;;;-1:-1:-1;;;;;7405:40:14;:82;;;-1:-1:-1;7449:7:14;;:38;;-1:-1:-1;;;;;7449:38:14;;:7;;;;-1:-1:-1;;;;;7449:7:14;;:28;;:38;;7478:8;;7449:38;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7449:38:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7449:38:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7449:38:14;;;;;;;;;7397:128;;;;-1:-1:-1;;;;;7397:128:14;;;;;;;;;7543:59;7552:6;7560:5;7567:8;7577:12;7591:10;7543:8;:59::i;:::-;7536:67;;6930:681;;;;;;;:::o;12507:702::-;12687:6;;12623:4;;12687:6;;:15;12679:24;;;;;;12750:15;12759:5;12750:8;:15::i;:::-;:21;;12767:4;12750:21;12742:49;;;;-1:-1:-1;;;;;12742:49:14;;;;;;;;;12810:7;;:27;;-1:-1:-1;;;;;12810:27:14;;:7;;;;-1:-1:-1;;;;;12810:7:14;;:15;;:27;;12826:10;;12810:27;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12810:27:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12810:27:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12810:27:14;;;;;;;;;-1:-1:-1;;;;;12810:45:14;12802:54;;;;;;13072:62;13079:6;13087:5;13094:8;-1:-1:-1;;;;;13120:13:14;13072:6;:62::i;:::-;13069:132;;;-1:-1:-1;13156:4:14;13149:11;;13069:132;-1:-1:-1;13196:5:14;13189:12;;4862:304:32;4951:4;4968:36;4978:6;4986:9;4997:6;4968:9;:36::i;:::-;5015:121;5024:6;5032:12;:10;:12::i;:::-;5046:89;5084:6;5046:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5046:19:32;;;;;;:11;:19;;;;;;5066:12;:10;:12::i;:::-;-1:-1:-1;;;;;5046:33:32;;;;;;;;;;;;-1:-1:-1;5046:33:32;;;:89;;:37;:89;:::i;:::-;5015:8;:121::i;:::-;-1:-1:-1;5154:4:32;4862:304;;;;;;:::o;3097:626:14:-;3271:6;;3207:4;;3271:6;;:15;3263:24;;;;;;3415:8;3401:12;;:22;;3393:31;;;;;;3533:7;;:27;;-1:-1:-1;;;;;3533:27:14;;:7;;;;-1:-1:-1;;;;;3533:7:14;;:15;;:27;;3549:10;;3533:27;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3533:27:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3533:27:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3533:27:14;;;;;;;;;-1:-1:-1;;;;;3533:40:14;:82;;;-1:-1:-1;3577:7:14;;:38;;-1:-1:-1;;;;;3577:38:14;;:7;;;;-1:-1:-1;;;;;3577:7:14;;:28;;:38;;3606:8;;3577:38;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3577:38:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3577:38:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3577:38:14;;;;;;;;;3525:127;;;;-1:-1:-1;;;;;3525:127:14;;;;;;;;;3670:44;3676:6;3684:5;3691:8;3701:12;3670:5;:44::i;3118:76:32:-;3184:2;3118:76;:::o;5575:210::-;5655:4;5672:83;5681:12;:10;:12::i;:::-;5695:7;5704:50;5743:10;5704:11;:25;5716:12;:10;:12::i;:::-;-1:-1:-1;;;;;5704:25:32;;;;;;;;;;;;;;;;;-1:-1:-1;5704:25:32;;;:34;;;;;;;;;;;:50;:38;:50;:::i;1468:67:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27887:102::-;27943:7;;27923:10;;27943:7;;;-1:-1:-1;;;;;27943:7:14;28088;:5;:7::i;:::-;-1:-1:-1;;;;;28077:18:14;:7;-1:-1:-1;;;;;28077:18:14;;:41;;;;28110:8;-1:-1:-1;;;;;28099:19:14;:7;-1:-1:-1;;;;;28099:19:14;;28077:41;28069:50;;;;;;27971:10;:8;:10::i;:::-;27887:102;;:::o;25816:390::-;-1:-1:-1;;;;;25956:17:14;;;25902:7;25956:17;;;:6;:17;;;;;;;;:28;;;;;;;;;;;:49;;;;26024:41;;;;26084:43;;;;26146:51;;;;;25956:49;;26024:41;;26084:43;26146:51;25816:390::o;1661:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3413:110:32:-;-1:-1:-1;;;;;3497:18:32;;3470:7;3497:18;;;:9;:18;;;;;;3413:110;;;;:::o;1746:137:2:-;1163:9;:7;:9::i;:::-;1155:54;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;1828:6;;1807:40;;1844:1;;-1:-1:-1;;;;;1828:6:2;;1807:40;;1844:1;;1807:40;1857:6;:19;;-1:-1:-1;;;;;;1857:19:2;;;1746:137::o;23557:1279:14:-;23733:6;;23669:4;;23733:6;;:15;23725:24;;;;;;23796:16;23805:6;23796:8;:16::i;:::-;:22;;23814:4;23796:22;23788:31;;;;;;23838:18;23847:8;23838;:18::i;:::-;:24;;23858:4;23838:24;23830:33;;;;;;-1:-1:-1;;;;;23953:25:14;;23973:4;23953:25;;;;:50;;;23994:9;-1:-1:-1;;;;;23982:21:14;:8;-1:-1:-1;;;;;23982:21:14;;23953:50;23950:879;;;24106:60;24113:6;24121;24129:8;;-1:-1:-1;;;;;24156:9:14;24106:6;:60::i;23950:879::-;-1:-1:-1;;;;;24534:17:14;;;;;;;:9;:17;;;;;;;;:28;;;;;;;;;:49;;;:57;;24531:260;;;24614:54;24632:9;24643:6;24651:8;24661:6;24614:17;:54::i;27783:98::-;27837:7;;27817:10;;27837:7;;;-1:-1:-1;;;;;27837:7:14;28088;:5;:7::i;:::-;-1:-1:-1;;;;;28077:18:14;:7;-1:-1:-1;;;;;28077:18:14;;:41;;;;28110:8;-1:-1:-1;;;;;28099:19:14;:7;-1:-1:-1;;;;;28099:19:14;;28077:41;28069:50;;;;;;27865:8;:6;:8::i;1270:23::-;;;;:::o;2607:482::-;1024:12:4;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:4;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:4;;;;;;;;;1129:19;1152:12;;;;;;1151:13;1170:80;;;;1198:12;:19;;-1:-1:-1;;;;1198:19:4;;;;;1225:18;1213:4;1225:18;;;1170:80;2754:26:14;2773:6;2754:18;:26::i;:::-;2791:7;:32;;-1:-1:-1;;;;;;2791:32:14;2812:10;2791:32;;;;;2834:6;:27;;-1:-1:-1;;;;;;2834:27:14;-1:-1:-1;;;;;2834:27:14;;;;;2887:23;;2872:40;;2887:23;;2904:5;;2887:23;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2887:23:14;;;2872:7;:40::i;:::-;2967:8;:16;;;2994:12;:24;;;3029:5;:14;;-1:-1:-1;;;;;3029:14:14;;;-1:-1:-1;;;;;;3029:14:14;;;;;;;3054:5;:27;;;;;;;;;;;;;;;1264:55:4;;;;1307:5;1292:20;;-1:-1:-1;;1292:20:4;;;1264:55;2607:482:14;;;;;;;:::o;25270:96::-;25312:16;25347:11;25340:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25340:18:14;;;;;;;;;;;;;;;;;;;;;;25270:96;:::o;959:77:2:-;1023:6;;-1:-1:-1;;;;;1023:6:2;959:77;:::o;1310:92::-;1389:6;;1350:4;;-1:-1:-1;;;;;1389:6:2;1373:12;:10;:12::i;:::-;-1:-1:-1;;;;;1373:22:2;;1366:29;;1310:92;:::o;25374:434:14:-;-1:-1:-1;;;;;25517:14:14;;;25454:7;25517:14;;;:6;:14;;;;;;;;:25;;;;;;;;;;;:34;;25570:46;;;;25635:38;;;;25692:40;;;;25751:48;;;;;25517:34;;25570:46;;25635:38;;25692:40;;25374:434::o;2288:87:32:-;2360:7;2353:14;;;;;;;;-1:-1:-1;;2353:14:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2327:13;;2353:14;;2360:7;;2353:14;;2360:7;2353:14;;;;;;;;;;;;;;;;;;;;;;;;6288:261;6373:4;6390:129;6399:12;:10;:12::i;:::-;6413:7;6422:96;6461:15;6422:96;;;;;;;;;;;;;;;;;:11;:25;6434:12;:10;:12::i;:::-;-1:-1:-1;;;;;6422:25:32;;;;;;;;;;;;;;;;;-1:-1:-1;6422:25:32;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;3736:158::-;3805:4;3822:42;3832:12;:10;:12::i;:::-;3846:9;3857:6;3822:9;:42::i;762:79:33:-;827:6;;;;762:79;:::o;741:142:2:-;1024:12:4;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:4;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:4;;;;;;;;;1129:19;1152:12;;;;;;1151:13;1170:80;;;;1198:12;:19;;-1:-1:-1;;;;1198:19:4;;;;;1225:18;1213:4;1225:18;;;1170:80;806:6:2;:15;;-1:-1:-1;;;;;;806:15:2;-1:-1:-1;;;;;806:15:2;;;;;;;;;;;836:40;;869:6;;;-1:-1:-1;;836:40:2;;-1:-1:-1;;836:40:2;1268:14:4;1264:55;;;1307:5;1292:20;;-1:-1:-1;;1292:20:4;;;741:142:2;;:::o;1834:28:14:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1834:28:14;;-1:-1:-1;1834:28:14;:::o;3957:134:32:-;-1:-1:-1;;;;;4056:18:32;;;4029:7;4056:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3957:134::o;2032:107:2:-;1163:9;:7;:9::i;:::-;1155:54;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;2104:28;2123:8;2104:18;:28::i;:::-;2032:107;:::o;867:96:0:-;946:10;867:96;:::o;9219:338:32:-;-1:-1:-1;;;;;9313:19:32;;9305:68;;;;-1:-1:-1;;;;;9305:68:32;;;;;;;;;-1:-1:-1;;;;;9392:21:32;;9384:68;;;;-1:-1:-1;;;;;9384:68:32;;;;;;;;;-1:-1:-1;;;;;9465:18:32;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;9517:32;;;;;9495:6;;9517:32;;;;;;;;;;9219:338;;;:::o;7710:2506:14:-;7857:7;;:29;;-1:-1:-1;;;;;7857:29:14;;7838:4;;7857:7;;;-1:-1:-1;;;;;7857:7:14;;:15;;:29;;7873:12;;7857:29;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7857:29:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7857:29:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7857:29:14;;;;;;;;;-1:-1:-1;;;;;7857:40:14;7854:622;;;7991:56;;-1:-1:-1;;;;;7991:56:14;;-1:-1:-1;;;;;7991:41:14;;;;;:56;;8033:6;;8041:5;;7991:56;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7991:56:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7991:56:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7991:56:14;;;;;;;;;7987:108;;-1:-1:-1;8074:5:14;8067:12;;7987:108;7854:622;;;8124:7;;:38;;-1:-1:-1;;;;;8124:38:14;;:7;;;;-1:-1:-1;;;;;8124:7:14;;:28;;:38;;8153:8;;8124:38;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8124:38:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8124:38:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8124:38:14;;;;;;;;;:44;;8164:4;8124:44;8121:355;;;8264:63;;-1:-1:-1;;;;;8264:63:14;;-1:-1:-1;;;;;8264:33:14;;;;;:63;;8298:5;;8313:4;;8320:6;;8264:63;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8264:63:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8264:63:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8264:63:14;;;;;;;;;;8342:21;8366:43;8395:12;8366:21;:43::i;:::-;8342:67;;8433:31;8442:6;8450:13;8433:8;:31::i;:::-;8424:40;;8121:355;;8486:10;8507;8528:13;8649:11;8672:13;8649:37;;8697:14;8714:2;-1:-1:-1;;;;;8714:12:14;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8714:14:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8714:14:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8714:14:14;;;;;;;;;8756:7;;:34;;-1:-1:-1;;;;;8756:34:14;;8697:31;;-1:-1:-1;8739:14:14;;8756:7;;;;-1:-1:-1;;;;;8756:7:14;;:19;;:34;;8776:13;;8756:34;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8756:34:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8756:34:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8756:34:14;;;;;;;;;:37;:85;;8807:7;;:34;;-1:-1:-1;;;;;8807:34:14;;:7;;;;-1:-1:-1;;;;;8807:7:14;;:19;;:34;;8827:13;;8807:34;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8807:34:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8807:34:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8807:34:14;;;;;;;;;8756:85;;;8796:8;8756:85;-1:-1:-1;;;;;8875:14:14;;;;;;;:6;:14;;;;;;;;:29;;;;;;;;;:52;;;8739:102;;-1:-1:-1;8861:67:14;;8870:3;;8861:8;:67::i;:::-;:70;:189;;-1:-1:-1;;;;;8996:14:14;;;;;;;:6;:14;;;;;;;;:29;;;;;;;;;:52;;;8965:85;;8974:6;;8982:67;;8991:3;;8982:8;:67::i;:::-;8965:8;:85::i;:::-;8861:189;;;8934:6;8861:189;8852:198;;9074:12;;9064:8;:22;9061:1017;;9349:6;;9374:12;;9349:44;;-1:-1:-1;;;;;9349:44:14;;-1:-1:-1;;;;;9349:6:14;;;;:14;;:44;;9364:8;;9374:12;9349:44;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9349:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9349:44:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9349:44:14;;;;;;;;;9413:6;;9438:12;;9413:44;;-1:-1:-1;;;;;9413:44:14;;9344:49;;-1:-1:-1;;;;;;9413:6:14;;;;:14;;:44;;9428:8;;9438:12;9413:44;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9413:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9413:44:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9413:44:14;;;;;;;;;9408:49;;9480:130;9499:30;9518:6;9526:2;9499:18;:30::i;:::-;9531:78;9546:24;9561:4;9567:2;9546:14;:24::i;:::-;9572:36;9591:6;9599:8;9572:18;:36::i;:::-;9531:14;:78::i;:::-;9480:18;:130::i;:::-;9472:138;;9061:1017;;;9897:6;;:40;;-1:-1:-1;;;;;9897:40:14;;-1:-1:-1;;;;;9897:6:14;;;;:14;;:40;;9912:8;;;;9897:40;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9897:40:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9897:40:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9897:40:14;;;;;;;;;9892:45;;9960:106;9979:6;9987:78;10002:24;10017:4;10023:2;10002:14;:24::i;9960:106::-;9952:114;;9061:1017;10124:84;10140:5;10147;10154:6;10162:8;10172:12;10186:13;10201:6;10124:15;:84::i;:::-;7710:2506;;;;;;;;;;;;;;:::o;27470:301::-;27526:4;27542:14;27559:7;;;;;;;;;-1:-1:-1;;;;;27559:7:14;-1:-1:-1;;;;;27559:17:14;;:19;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27559:19:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27559:19:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;27559:19:14;;;;;;;;;27542:36;-1:-1:-1;;;;;;27592:20:14;;27589:49;;27634:4;27627:11;;;;;27589:49;27652:44;;-1:-1:-1;;;;;27652:44:14;;-1:-1:-1;;;;;27652:35:14;;;;;:44;;27688:7;;27652:44;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27652:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27652:44:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;27652:44:14;;;;;;;;;27649:114;;;27718:4;27711:11;;;;;27649:114;27758:5;27751:12;;;;;13311:10166;13432:4;13565:6;-1:-1:-1;;;;;13565:23:14;13562:9908;;;-1:-1:-1;;;;;13713:16:14;;;13604:11;13713:16;;;:9;:16;;;;;;;;:31;;;;;;;;;;;:52;;;:60;;13710:4899;;;-1:-1:-1;;;;;13848:16:14;;;13905:1;13848:16;;;:9;:16;;;;;;;;:31;;;;;;;;;:54;;;:58;13845:3049;;-1:-1:-1;;;;;13947:16:14;;;13930:14;13947:16;;;:9;:16;;;;;;;;:31;;;;;;;;;;;:46;;:49;;13930:14;;13947:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14157:16:14;;;;;:9;:16;;;;;;:31;;;;;;;;;;;:46;;:49;;13947;;;;;-1:-1:-1;14104:266:14;;14123:109;;14142:6;;14150;;13947:49;;;;14157;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14157:49:14;;;14150:57;;;;;;;;;;;;;;;:72;;;;;;;;;;;:81;14123:18;:109::i;:::-;-1:-1:-1;;;;;14291:16:14;;;14284:57;14291:16;;;:9;:16;;;;;;;;:31;;;;;;;;;;;:46;;:49;;14284:6;;:57;14291:46;14284:57;;14291:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14291:49:14;;;14284:57;;;;;;;;;;;;;;;:72;;;;;;;;;;;14291:49;14284:85;;14104:18;:266::i;:::-;-1:-1:-1;;;;;14591:16:14;;;;;;;:9;:16;;;;;;;;:31;;;;;;;;;:54;;;14077:293;;-1:-1:-1;14479:279:14;;14077:293;;14516:241;;14577:69;;14586:3;;14577:8;:69::i;:::-;-1:-1:-1;;;;;14703:14:14;;;;;;;:6;:14;;;;;;;;:29;;;;;;;;;:52;;;14689:67;;14698:3;;14689:8;:67::i;:::-;14516:18;:241::i;14479:279::-;-1:-1:-1;;;;;14790:19:14;;:4;:19;;;;14460:298;;-1:-1:-1;14790:19:14;;14789:20;14781:29;;;;;;14833:19;:26;;-1:-1:-1;;14833:26:14;14855:4;14833:26;;;-1:-1:-1;;;;;14986:16:14;;;-1:-1:-1;14986:16:14;;;:9;14833:19;14986:16;;;;;;;:31;;;;;;;;;;;:46;;:49;;14979:6;;-1:-1:-1;;;;14986:49:14;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14986:49:14;;;14979:57;;;;;;;;;;;;;;;:72;;;;;;;;;;;:87;;;;-1:-1:-1;15166:54:14;15173:16;14979:87;-1:-1:-1;;;;;15166:6:14;:54::i;:::-;15295:7;;:44;;-1:-1:-1;;;;;15295:44:14;;15147:73;;-1:-1:-1;15247:18:14;;15295:7;;;;-1:-1:-1;;;;;15295:7:14;;:28;;:44;;15324:14;;15295:44;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15295:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15295:44:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15295:44:14;;;;;;;;;15292:306;;;15384:7;;:40;;-1:-1:-1;;;;;15384:40:14;;:7;;;;-1:-1:-1;;;;;15384:7:14;;:24;;:40;;15409:14;;15384:40;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15384:40:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15384:40:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15384:40:14;;;;;;;;;15371:53;;15292:306;;;15526:7;;:44;;-1:-1:-1;;;;;15526:44:14;;:7;;;;-1:-1:-1;;;;;15526:7:14;;:17;;:44;;15555:14;;15526:44;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15526:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15526:44:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15526:44:14;;;;;;;;;15513:57;;15292:306;15624:41;15629:10;15641:16;15659:5;15624:4;:41::i;:::-;15752:44;;-1:-1:-1;;;;;15752:44:14;;-1:-1:-1;;;;;15752:36:14;;;;;:44;;15789:6;;15752:44;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15752:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15910:52:14;;-1:-1:-1;;;;;15910:52:14;;-1:-1:-1;;;;;15910:37:14;;;-1:-1:-1;15910:37:14;;-1:-1:-1;15910:52:14;;15948:5;;15955:6;;15910:52;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15910:52:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15910:52:14;;;;16051:5;-1:-1:-1;;;;;16036:89:14;;16058:13;16073:6;16081:9;16092:16;16110:14;16036:89;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16253:14:14;;;16239:11;16253:14;;;:6;:14;;;;;;;;:29;;;;;;;;;;;:44;;:51;;16331:286;16347:6;16345:1;:8;16331:286;;;-1:-1:-1;;;;;16393:14:14;;;;;;;:6;:14;;;;;;;;:29;;;;;;;;;;:44;;:47;;:54;;;;16438:1;;16393:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16393:47:14;:54;16390:180;;;-1:-1:-1;;;;;16490:14:14;;;;;;;:6;:14;;;;;;;;:29;;;;;;;;;:44;;:47;;16535:1;;16490:47;;;;;;;;;;;;;;;16483:55;;-1:-1:-1;;;;;;16483:55:14;;;16390:180;16355:3;;16331:286;;;-1:-1:-1;;;;;;16733:16:14;;;;;;;:9;:16;;;;;;;;:31;;;;;;;;;;;16726:39;;;;;;;;;;;;;;;;;;;;;;;;;;;16733:31;16726:39;;;;16733:16;16726:39;:::i;:::-;;;14902:1887;;;-1:-1:-1;;;;;;;16833:5:14;16811:19;-1:-1:-1;16811:4:14;:19;;;:27;;-1:-1:-1;;16811:27:14;;;;13845:3049;13710:4899;;;17047:41;;-1:-1:-1;;;;;17047:41:14;;17092:6;;-1:-1:-1;;;;;17047:34:14;;;;;:41;;17082:5;;17047:41;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17047:41:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17047:41:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17047:41:14;;;;;;;;;:51;17044:1565;;-1:-1:-1;;;;;17127:18:14;;:4;:18;;;;;;17126:19;17118:28;;;;;;17165:18;:25;;-1:-1:-1;;17165:25:14;17186:4;17165:25;;;-1:-1:-1;;;;;17234:13:14;;;-1:-1:-1;17234:13:14;;;:6;17165:18;17234:13;;;17165:18;17234:13;;;:28;;;;;;;;;;;:43;;;;17463:37;;17234:43;;-1:-1:-1;17417:128:14;;17436:65;;17455:6;;17436:18;:65::i;:::-;-1:-1:-1;;;;;17503:13:14;;;;;;;:6;:13;;;;;;;;:28;;;;;;;;;:41;;;17417:18;:128::i;:::-;17390:155;;17629:54;17636:16;17654:14;-1:-1:-1;;;;;17629:6:14;:54::i;:::-;17831:7;;:44;;-1:-1:-1;;;;;17831:44:14;;17610:73;;-1:-1:-1;17791:18:14;;17831:7;;;;-1:-1:-1;;;;;17831:7:14;;:28;;:44;;17860:14;;17831:44;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17831:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17831:44:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17831:44:14;;;;;;;;;17828:225;;;17911:7;;:40;;-1:-1:-1;;;;;17911:40:14;;:7;;;;-1:-1:-1;;;;;17911:7:14;;:24;;:40;;17936:14;;17911:40;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17911:40:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17911:40:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17911:40:14;;;;;;;;;17898:53;;17828:225;;;18009:7;;:44;;-1:-1:-1;;;;;18009:44:14;;:7;;;;-1:-1:-1;;;;;18009:7:14;;:17;;:44;;18038:14;;18009:44;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18009:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18009:44:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18009:44:14;;;;;;;;;17996:57;;17828:225;18072:41;18077:10;18089:16;18107:5;18072:4;:41::i;:::-;18184:44;;-1:-1:-1;;;;;18184:44:14;;-1:-1:-1;;;;;18184:36:14;;;;;:44;;18221:6;;18184:44;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18184:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18318:52:14;;-1:-1:-1;;;;;18318:52:14;;-1:-1:-1;;;;;18318:37:14;;;-1:-1:-1;18318:37:14;;-1:-1:-1;18318:52:14;;18356:5;;18363:6;;18318:52;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18318:52:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18318:52:14;;;;18441:5;-1:-1:-1;;;;;18428:87:14;;18448:13;18463:6;18471:9;18482:16;18500:14;18428:87;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;18555:5:14;18534:18;-1:-1:-1;;18534:4:14;:18;;;:26;;-1:-1:-1;;18534:26:14;;;;17044:1565;18630:6;-1:-1:-1;18623:13:14;;13562:9908;18807:6;-1:-1:-1;;;;;18807:22:14;18804:4666;;;-1:-1:-1;;;;;19140:14:14;;;18857:18;19140:14;;;:6;:14;;;;;;;;:25;;;;;;;;;;;:48;;;18857:18;;;;18977:5;;19017:13;;19068:6;;19113:9;;19140:52;19137:4294;;-1:-1:-1;;;;;19224:22:14;;:4;:22;;;;;;19223:23;19215:32;;;;;;-1:-1:-1;;;;;19266:22:14;;:4;:22;;;:29;;19291:4;-1:-1:-1;;19266:29:14;;;;;;19330:7;;19266:22;19330:43;-1:-1:-1;;;;;19330:43:14;;19266:29;19330:7;;;-1:-1:-1;;;;;19330:7:14;;:28;;:43;;19359:13;;19330:43;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19330:43:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19330:43:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;19330:43:14;;;;;;;;;19327:530;;;19410:7;;:39;;-1:-1:-1;;;;;19410:39:14;;:7;;;;-1:-1:-1;;;;;19410:7:14;;:24;;:39;;19435:13;;19410:39;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19410:39:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19410:39:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;19410:39:14;;;;;;;;;19397:52;;19512:12;19482:10;-1:-1:-1;;;;;19475:28:14;;19504:6;19475:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19475:36:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19475:36:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;19475:36:14;;;;;;;;;:49;19472:92;;;19558:6;19551:13;;;;;;;;;;;19472:92;19327:530;;;19642:7;;:43;;-1:-1:-1;;;;;19642:43:14;;:7;;;;-1:-1:-1;;;;;19642:7:14;;:17;;:43;;19671:13;;19642:43;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19642:43:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19642:43:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;19642:43:14;;;;;;;;;19712:61;;-1:-1:-1;;;;;19712:61:14;;19629:56;;-1:-1:-1;;;;;;19712:39:14;;;;;:61;;19752:12;;19766:6;;19712:61;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19712:61:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19712:61:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;19712:61:14;;;;;;;;;19708:130;;19808:6;19801:13;;;;;;;;;;;19708:130;19950:6;19979:2445;-1:-1:-1;;;;;19990:14:14;;;;;;;:6;:14;;;;;;;;:25;;;;;;;;;:40;;:47;19988:49;;19979:2445;;;-1:-1:-1;;;;;20086:14:14;;;20066:17;20086:14;;;:6;:14;;;;;;;;:25;;;;;;;;;;;:40;;:43;;20127:1;;20086:43;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20086:43:14;20066:63;;20344:27;20374:112;20393:9;:20;20403:9;-1:-1:-1;;;;;20393:20:14;-1:-1:-1;;;;;20393:20:14;;;;;;;;;;;;:31;20414:9;-1:-1:-1;;;;;20393:31:14;-1:-1:-1;;;;;20393:31:14;;;;;;;;;;;;:52;;;20447:6;:14;20454:6;-1:-1:-1;;;;;20447:14:14;-1:-1:-1;;;;;20447:14:14;;;;;;;;;;;;:29;20462:13;-1:-1:-1;;;;;20447:29:14;-1:-1:-1;;;;;20447:29:14;;;;;;;;;;;;:38;;;20374:18;:112::i;:::-;-1:-1:-1;;;;;20576:14:14;;;20509:24;20576:14;;;:6;:14;;;;;;;;:25;;;;;;;;;;;:34;20344:142;;-1:-1:-1;20509:24:14;20536:75;;20344:142;;20536:18;:75::i;:::-;-1:-1:-1;;;;;20832:20:14;;;;;;;:9;:20;;;;;;;;:31;;;;;;;;;:54;;;20509:102;;-1:-1:-1;20720:275:14;;20509:102;;20757:237;;20818:69;;20827:3;;20818:8;:69::i;:::-;-1:-1:-1;;;;;20944:14:14;;;;;;;:6;:14;;;;;;;;:25;;;;;;;;;:48;;;20930:63;;20939:3;;20930:8;:63::i;20720:275::-;20701:294;-1:-1:-1;;;;;;21106:24:14;;;;;;:50;;;21154:1;21135:16;:20;21106:50;21103:1000;;;21257:53;21264:16;21282:13;-1:-1:-1;;;;;21257:6:14;:53::i;:::-;21238:72;;21337:45;21342:10;21354:16;21372:9;21337:4;:45::i;:::-;21481:41;21490:13;21505:16;21481:8;:41::i;:::-;21609:50;;-1:-1:-1;;;;;21609:50:14;;21465:57;;-1:-1:-1;;;;;;21609:32:14;;;;;:50;;21642:16;;21609:50;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21609:50:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21785:62:14;;-1:-1:-1;;;;;21785:62:14;;-1:-1:-1;;;;;21785:33:14;;;-1:-1:-1;21785:33:14;;-1:-1:-1;21785:62:14;;21819:9;;21830:16;;21785:62;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21785:62:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;21968:20:14;;;;;;;:9;:20;;;;;;;;:31;;;;;;;;;:52;;;21959:80;;-1:-1:-1;22022:16:14;21959:8;:80::i;:::-;-1:-1:-1;;;;;21874:20:14;;;;;;;:9;:20;;;;;;;;:31;;;;;;;;;:52;;:165;22075:4;;-1:-1:-1;21103:1000:14;22152:6;:65;;;;-1:-1:-1;;;;;;22162:20:14;;;;;;;:9;:20;;;;;;;;:31;;;;;;;;;:52;;;:55;22152:65;22149:235;;;-1:-1:-1;;;;;22352:20:14;;;;;;;:9;:20;;;;;;;;:31;;;;;;;;;;;22345:39;;;;;;;;;;;;;;;;;;;;;;;;;;;22352:31;22345:39;;;;22352:20;22345:39;:::i;:::-;;;22149:235;-1:-1:-1;;;20039:3:14;;19979:2445;;;-1:-1:-1;;;;;22467:5:14;22442:22;:4;:22;;;:30;;-1:-1:-1;;22442:30:14;;;22491:925;;;;-1:-1:-1;;;;;22636:14:14;;;22573:26;22636:14;;;:6;:14;;;;;;;;:25;;;;;;;;;;;:46;;;22602:81;;22621:13;;22602:18;:81::i;:::-;-1:-1:-1;;;;;22834:14:14;;;22790:22;22834:14;;;:6;:14;;;;;;;;:25;;;;;;;;;;;:38;;;22573:110;;-1:-1:-1;22790:22:14;22815:78;;22573:110;22815:18;:78::i;:::-;-1:-1:-1;;;;;22941:14:14;;;22916:22;22941:14;;;:6;:14;;;;;;;;:25;;;;;;;;;:40;;;22790:103;;-1:-1:-1;23004:40:14;23009:10;22790:103;22948:6;23004:4;:40::i;:::-;-1:-1:-1;;;;;23073:14:14;;;;;;;:6;:14;;;;;;;;:25;;;;;;;;;:40;;:47;-1:-1:-1;;23073:49:14;23070:52;;23067:209;;;-1:-1:-1;;;;;23250:14:14;;;;;;;:6;:14;;;;;;;;:25;;;;;;;;;;;23243:33;;;;;;;;;;;;;;;;;;;;;;;;;;;23250:25;23243:33;;;;23250:14;23243:33;:::i;:::-;;;23067:209;23317:6;-1:-1:-1;;;;;23304:92:14;;23325:9;23336:12;23350:13;23365:14;23381;23304:92;;;;;;;;;;;;;;;;;;;22491:925;;;;19137:4294;;23452:6;23445:13;;;;;;;;;;;7039:471:32;-1:-1:-1;;;;;7137:20:32;;7129:70;;;;-1:-1:-1;;;;;7129:70:32;;;;;;;;;-1:-1:-1;;;;;7218:23:32;;7210:71;;;;-1:-1:-1;;;;;7210:71:32;;;;;;;;;7314;7336:6;7314:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7314:17:32;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;7294:17:32;;;;;;;:9;:17;;;;;;:91;;;;7419:20;;;;;;;:32;;7444:6;7419:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;7396:20:32;;;;;;;:9;:20;;;;;;;:55;;;;7467:35;;;;;;;;;;7495:6;;7467:35;;1732:187:1;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;;;1837:29:1;;;;;;;;;;-1:-1:-1;;;1888:5:1;;;1732:187::o;3829:1723:14:-;4033:7;;:29;;-1:-1:-1;;;;;4033:29:14;;3931:4;;4033:7;;;-1:-1:-1;;;;;4033:7:14;;:15;;:29;;4049:12;;4033:29;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4033:29:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4033:29:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4033:29:14;;;;;;;;;-1:-1:-1;;;;;4033:40:14;4030:542;;;4093:56;;-1:-1:-1;;;;;4093:56:14;;-1:-1:-1;;;;;4093:41:14;;;;;:56;;4135:6;;4143:5;;4093:56;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4093:56:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4093:56:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4093:56:14;;;;;;;;;4089:108;;-1:-1:-1;4176:5:14;4169:12;;4089:108;4030:542;;;4226:7;;:38;;-1:-1:-1;;;;;4226:38:14;;:7;;;;-1:-1:-1;;;;;4226:7:14;;:28;;:38;;4255:8;;4226:38;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4226:38:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4226:38:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4226:38:14;;;;;;;;;:44;;4266:4;4226:44;4223:349;;;4360:63;;-1:-1:-1;;;;;4360:63:14;;-1:-1:-1;;;;;4360:33:14;;;;;:63;;4394:5;;4409:4;;4416:6;;4360:63;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4360:63:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4360:63:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4360:63:14;;;;;;;;;;4438:21;4462:43;4491:12;4462:21;:43::i;:::-;4438:67;;4529:31;4538:6;4546:13;4529:8;:31::i;:::-;4520:40;;4223:349;;4658:7;;:47;;-1:-1:-1;;;;;4658:47:14;;4628:16;;;;4658:7;;;;-1:-1:-1;;;;;4658:7:14;;:26;;:47;;4685:8;;4658:47;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4658:47:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4658:47:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4658:47:14;;;;;;;;;-1:-1:-1;;;;;4658:61:14;;4655:695;;5002:6;;5027:12;;5002:45;;-1:-1:-1;;;;;5002:45:14;;4983:73;;-1:-1:-1;;;;;5002:6:14;;:14;;:45;;5017:8;;5002:45;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5002:45:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5002:45:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5002:45:14;;;;;;;;;5049:6;4983:18;:73::i;:::-;4972:84;;4655:695;;;5275:6;;5300:12;;:34;;-1:-1:-1;;;;;5300:34:14;;5256:94;;-1:-1:-1;;;;;5275:6:14;;:14;;5290:8;;5300:29;;;;:34;;5330:1;;5332;;5300:34;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5300:34:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5300:34:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5300:34:14;;;;;;;;;5275:66;;;;;;;;;;;;;;;;;5256:94;5245:105;;4655:695;5399:41;5406:8;5416:12;;-1:-1:-1;;;;;5399:6:14;:41::i;:::-;5388:52;;5497:47;5510:5;5517:8;5527:6;5535:8;5497:12;:47::i;:::-;3829:1723;;;;;;;:::o;834:176:1:-;892:7;923:5;;;946:6;;;;938:46;;;;-1:-1:-1;;;;;938:46:1;;;;;;;;491:88:33;531:6;:14;;-1:-1:-1;;531:14:33;;;561:10;;;;540:5;;561:10;491:88::o;24844:418:14:-;24974:60;;-1:-1:-1;;;;;24974:60:14;;24955:4;;-1:-1:-1;;;;;24974:34:14;;;;;:60;;25009:6;;25017:8;;25027:6;;24974:60;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24974:60:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24974:60:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;24974:60:14;;;;;;;;;24971:284;;;-1:-1:-1;;;;;25084:17:14;;;;;;;:9;:17;;;;;;;;:29;;;;;;;;;;;;25050:19;;;;;;;;;;;:31;;;;;;;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;25135:17:14;;;;;;;:9;:17;;;;;;;;:29;;;;;;;;;;;25128:36;;;;;;;;;;;;;;;;;;;;;;;;;;;25135:29;25128:36;;;;25135:17;25128:36;:::i;:::-;;;25186:4;25179:11;;;;298:83:33;336:6;:13;;-1:-1:-1;;336:13:33;345:4;336:13;;;365:8;;;;336:6;;365:8;298:83::o;1409:498:4:-;1820:4;1864:17;1895:7;1409:498;:::o;2090:79:32:-;2148:13;;;;:5;;:13;;;;;:::i;2240:225:2:-;-1:-1:-1;;;;;2313:22:2;;2305:73;;;;-1:-1:-1;;;;;2305:73:2;;;;;;;;;2414:6;;2393:38;;-1:-1:-1;;;;;2393:38:2;;;;2414:6;;2393:38;;2414:6;;2393:38;2441:6;:17;;-1:-1:-1;;;;;;2441:17:2;-1:-1:-1;;;;;2441:17:2;;;;;;;;;;2240:225::o;28147:412:14:-;28213:7;28316:21;28354:3;-1:-1:-1;;;;;28340:28:14;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28340:30:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28340:30:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;28340:30:14;;;;;;;;;28316:54;;;;28448:26;28477:27;28486:2;28490:13;28477:8;:27::i;:::-;28529:2;:22;28522:4;:29;;;-1:-1:-1;;;;28147:412:14:o;28567:164::-;28647:7;28682:41;28701:6;28709:13;28682:18;:41::i;1129:164:30:-;1187:7;1220:1;1215;:6;;1207:31;;;;-1:-1:-1;;;;;1207:31:30;;;;;;;;;-1:-1:-1;1261:5:30;;;1129:164::o;1732:208:28:-;1794:7;1832:5;;;1856:6;;;:26;;;1881:1;1876;1866:7;:11;;;;;;:16;1856:26;1848:51;;;;-1:-1:-1;;;;;1848:51:28;;;;;;;;;875:4;1919:13;;;;-1:-1:-1;;;1732:208:28:o;1238:239::-;1296:7;1403:5;;;1427:6;;;;1419:31;;;;-1:-1:-1;;;;;1419:31:28;;;;;;;;2582:354;2644:7;2672:6;2664:32;;;;-1:-1:-1;;;;;2664:32:28;;;;;;;;;2713:6;2709:220;;-1:-1:-1;2743:1:28;2736:8;;2709:220;875:4;2797:7;;;;:1;:7;:1;2827:13;;;;;:20;2819:45;;;;-1:-1:-1;;;;;2819:45:28;;;;;;;;;2916:1;2904:9;:13;;;;;;2897:20;;;;;4917:2223:29;4975:7;4999:6;4995:134;;-1:-1:-1;1930:4:29;5095:22;;4995:134;5145:6;5141:47;;-1:-1:-1;5175:1:29;5168:8;;5141:47;5578:3;5573:8;;;:13;5565:41;;;;-1:-1:-1;;;;;5565:41:29;;;;;;;;;5642:1;3095:24;6012:23;;6004:51;;;;-1:-1:-1;;;;;6004:51:29;;;;;;;;;6091:1;6066:15;2978:13;6140:28;-1:-1:-1;6140:60:29;;;;-1:-1:-1;3034:13:29;6172:28;;6140:60;6136:694;;;6217:14;6234:16;6241:8;6234:6;:16::i;:::-;6217:33;-1:-1:-1;1930:4:29;6707:16;;;6706:29;;6705:40;6694:8;1930:4;6674:7;:16;6673:29;:72;6657:89;;6136:694;;;;6810:8;6794:13;6798:8;6794:3;:13::i;:::-;:24;6779:39;;6136:694;1930:4;6840:22;;-1:-1:-1;;6961:36:29;-1:-1:-1;6961:36:29;;;:76;;;2729:6;7001:12;:36;;6961:76;6939:147;;;;-1:-1:-1;;;;;6939:147:29;;;;;;;;;7114:17;7118:12;7114:3;:17::i;:::-;7099:33;4917:2223;-1:-1:-1;;;;;;4917:2223:29:o;10228:1594:14:-;-1:-1:-1;;;;;10418:20:14;10464:16;:4;:16;;;;10441:3;;10464:16;;10463:17;10455:26;;;;;;-1:-1:-1;;;;;10492:16:14;;:4;:16;;;:23;;-1:-1:-1;;10492:23:14;10511:4;10492:23;;;:16;10707:67;-1:-1:-1;;;;;10707:67:14;;-1:-1:-1;;;;;10707:37:14;;;;;:67;;10745:6;;10753:5;;10760:13;;10707:67;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10707:67:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10707:67:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10707:67:14;;;;;;;;;10704:1068;;;10998:40;11003:12;11017;11031:6;10998:4;:40::i;:::-;-1:-1:-1;;;;;11135:14:14;;;11118;11135;;;:6;:14;;;;;;;;:29;;;;;;;;;;;;11179:16;;;27:10:-1;;39:1;23:18;;45:23;;11179:28:14;;;;;;;;;;;;-1:-1:-1;;;;;;11179:28:14;;;;;;;;;;11363:29;;;:50;;;;11354:75;;11415:13;11354:8;:75::i;:::-;-1:-1:-1;;;;;11301:14:14;;;;;;;:6;:14;;;;;;;;:29;;;;;;;;;:50;;:128;11491:108;11510:5;11308:6;11525:13;11540:12;11554:15;11571:12;11316:13;11491:18;:108::i;:::-;11669:5;-1:-1:-1;;;;;11655:105:14;;11676:13;11691:8;;11701:13;11716:15;11733:12;11747;11655:105;;;;;;;;;;;;;;;;;;;;10704:1068;;-1:-1:-1;;;;;;;11801:5:14;11782:16;-1:-1:-1;;11782:4:14;:16;;-1:-1:-1;;11782:16:14;:24;;-1:-1:-1;;11782:24:14;;;-1:-1:-1;;10228:1594:14:o;26478:940::-;26560:7;26579:12;26602:19;26635:6;-1:-1:-1;;;;;26635:17:14;26632:152;;;26674:5;;:23;;-1:-1:-1;;;;;26674:23:14;;-1:-1:-1;;;;;26674:5:14;;;;:12;;:23;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26674:23:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26674:23:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26674:23:14;;;;;;;;;26667:30;;26632:152;;;26716:6;-1:-1:-1;;;;;26716:20:14;26713:71;;;26758:5;;:26;;-1:-1:-1;;;;;26758:26:14;;-1:-1:-1;;;;;26758:5:14;;;;:12;;:26;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26758:26:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26758:26:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26758:26:14;;;;;;;;;26751:33;;26713:71;26798:8;;26795:593;;26838:5;;:20;;;-1:-1:-1;;;;;26838:20:14;;;;26822:13;;-1:-1:-1;;;;;26838:5:14;;:18;;:20;;;;;;;;;;;;;;:5;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;26838:20:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26838:20:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26838:20:14;;;;;;;;;26911:7;;:38;;-1:-1:-1;;;;;26911:38:14;;26822:36;;-1:-1:-1;26873:20:14;;26911:7;;;;-1:-1:-1;;;;;26911:7:14;;:28;;:38;;26940:8;;26911:38;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26911:38:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26911:38:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26911:38:14;;;;;;;;;26908:209;;;26983:7;;:34;;-1:-1:-1;;;;;26983:34:14;;:7;;;;-1:-1:-1;;;;;26983:7:14;;:24;;:34;;27008:8;;26983:34;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26983:34:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26983:34:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26983:34:14;;;;;;;;;26968:49;;26908:209;;;27070:7;;:47;;-1:-1:-1;;;;;27070:47:14;;:7;;;;-1:-1:-1;;;;;27070:7:14;;:26;;:47;;27097:8;;27070:47;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27070:47:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27070:47:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;27070:47:14;;;;;;;;;27055:62;;26908:209;-1:-1:-1;;;;;27135:19:14;;;27132:245;;27181:12;-1:-1:-1;;;;;27174:29:14;;27204:5;27211:31;27230:4;27236:5;27211:18;:31::i;:::-;27174:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27174:69:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27174:69:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;27174:69:14;;;;;;;;;;27276:48;27285:5;27292:31;27311:4;27317:5;27292:18;:31::i;27276:48::-;27262:62;-1:-1:-1;27343:18:14;;-1:-1:-1;;;;27343:18:14;27132:245;26795:593;;;-1:-1:-1;27405:5:14;;26478:940;-1:-1:-1;;;;26478:940:14:o;26214:256::-;26295:7;;:21;;-1:-1:-1;;;;;26295:21:14;;:7;;;;-1:-1:-1;;;;;26295:7:14;;:15;;:21;;26311:4;;26295:21;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26295:21:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26295:21:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26295:21:14;;;;;;;;;-1:-1:-1;;;;;26295:34:14;26292:170;;;26344:53;;-1:-1:-1;;;;;26344:53:14;;-1:-1:-1;;;;;26344:38:14;;;;;:53;;26383:6;;26391:5;;26344:53;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26344:53:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26344:53:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26344:53:14;;;;;;;;;;26292:170;;;26426:36;;-1:-1:-1;;;;;26426:36:14;;-1:-1:-1;;;;;26426:21:14;;;;;:36;;26448:5;;26455:6;;26426:36;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26426:36:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26426:36:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;26426:36:14;;;;;;;;;;26292:170;26214:256;;;:::o;5641:810::-;5894:7;;5914:5;;5928:8;;5948:33;;5779:3;;5759:17;;-1:-1:-1;;;;;5894:7:14;;;;;;;:19;;5914:5;;;;;5921;;5948:33;;5921:5;;5779:3;;5948:33;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5948:33:14;;;5938:44;;;;;;5894:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5894:89:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5894:89:14;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5894:89:14;;;;;;;;;6072:30;;-1:-1:-1;;;;;6072:30:14;;5873:110;;-1:-1:-1;5873:110:14;;-1:-1:-1;;;;;6072:13:14;;;;;:30;;6086:5;;6093:8;;6072:30;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6072:30:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6113:27:14;;-1:-1:-1;;;;;6113:27:14;;-1:-1:-1;;;;;6113:17:14;;;-1:-1:-1;6113:17:14;;-1:-1:-1;6113:27:14;;6131:8;;6113:27;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6113:27:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6191:11:14;27:10:-1;;39:1;23:18;;45:23;;-1:-1;6191:28:14;;;;;;;;-1:-1:-1;;;;;;6191:28:14;-1:-1:-1;;;;;6191:28:14;;;;;-1:-1:-1;6230:83:14;;-1:-1:-1;6246:5:14;6253:8;6263:12;6277;6291:9;6191:28;6230:15;:83::i;:::-;6366:5;-1:-1:-1;;;;;6355:88:14;;6373:10;6385:8;;6395;6405:12;6419;6433:9;6355:88;;;;;;;;;;;;;;;;;;;;5641:810;;;;;;;:::o;19774:1761:29:-;1930:4;20049:11;19822:6;;2160:4;20466:10;;;;-1:-1:-1;;20441:10:29;;20440:21;20466:10;20439:38;;;;;;-1:-1:-1;20488:16:29;2160:4;20508:5;;;20507:16;;-1:-1:-1;20620:1:29;;2160:4;20841:15;;;20840:26;;-1:-1:-1;20896:1:29;20840:26;20890:7;20877:20;2160:4;20917:15;;;20916:26;;-1:-1:-1;20972:1:29;20916:26;20966:7;20953:20;2160:4;20993:15;;;20992:26;;-1:-1:-1;21048:1:29;20992:26;21042:7;21029:20;2160:4;21069:15;;;21068:26;;-1:-1:-1;21124:1:29;21068:26;21118:7;21105:20;2160:4;21145:15;;;21144:26;;-1:-1:-1;21200:2:29;21144:26;21194:8;21181:21;2160:4;21222:15;;;21221:26;;-1:-1:-1;21277:2:29;21221:26;21271:8;21258:21;2160:4;21299:15;;;21298:26;;-1:-1:-1;21354:2:29;21298:26;21526:1;21348:8;;;21335:21;;;;21514:13;;19774:1761;-1:-1:-1;;;;;19774:1761:29:o;14409:5091::-;14454:6;1930:4;14477:1;:10;14473:387;;;14821:26;14845:1;14826:15;14845:1;14825:21;;;;;14821:3;:26::i;:::-;14820:27;;14812:36;;;;14473:387;16202:10;16236:11;16231:16;;16227:117;;3235:56;16264:7;;;-1:-1:-1;3178:21:29;16323:9;16227:117;16365:11;16360:16;;16356:117;;3400:28;16393:7;;;-1:-1:-1;3344:20:29;16452:9;16356:117;16614:3;16628:8;;;;16607:10;3570:34;16767:7;;16763:85;;3570:34;2124:4;16796:10;;16795:17;;-1:-1:-1;3512:22:29;16827:9;16763:85;3701:27;16864:1;:7;16860:85;;3701:27;2124:4;16893:10;;16892:17;;-1:-1:-1;3643:22:29;16924:9;16860:85;3824:24;16961:1;:7;16957:85;;3824:24;2124:4;16990:10;;16989:17;;-1:-1:-1;3767:21:29;17021:9;16957:85;3944:22;17058:1;:7;17054:85;;3944:22;2124:4;17087:10;;17086:17;;-1:-1:-1;3887:21:29;17118:9;17054:85;4062:21;17155:1;:7;17151:85;;4062:21;2124:4;17184:10;;17183:17;;-1:-1:-1;4005:21:29;17215:9;17151:85;4179:21;17252:1;:7;17248:85;;4179:21;2124:4;17281:10;;;17280:17;;17312:9;17248:85;4296:21;17349:1;:7;17345:85;;4296:21;2124:4;17378:10;;17377:17;;-1:-1:-1;4239:20:29;17409:9;17345:85;4413:21;17446:1;:7;17442:85;;4413:21;2124:4;17475:10;;17474:17;;-1:-1:-1;4356:20:29;17506:9;17442:85;4532:21;17543:1;:8;17539:88;;4532:21;2124:4;17573:10;;17572:18;;-1:-1:-1;4474:20:29;17605:10;17539:88;4651:21;17643:1;:8;17639:88;;4651:21;2124:4;17673:10;;17672:18;;-1:-1:-1;4594:19:29;17705:10;17639:88;18238:8;2124:4;18276:1;:10;2124:4;;18251:1;:10;18250:21;18249:38;;;;;;;-1:-1:-1;18298:16:29;2124:4;18318:5;;;18317:16;;-1:-1:-1;18430:1:29;;2124:4;18651:15;;;18650:26;;-1:-1:-1;18706:1:29;18650:26;18700:7;18687:20;2124:4;18727:15;;;18726:26;;-1:-1:-1;18782:1:29;18726:26;18776:7;18763:20;2124:4;18803:15;;;18802:26;;-1:-1:-1;18858:1:29;18802:26;18852:7;18839:20;2124:4;18879:15;;;18878:26;;-1:-1:-1;18934:1:29;18878:26;18928:7;18915:20;2124:4;18955:15;;;18954:26;;-1:-1:-1;19010:2:29;18954:26;19004:8;18991:21;19189:1;19176:14;19489:3;19470:15;;;19469:23;;14409:5091;-1:-1:-1;;;;;;;14409:5091:29:o;7361:5508::-;7407:6;-1:-1:-1;;7434:1:29;:25;;:54;;;;;2729:6;7463:1;:25;;7434:54;7426:83;;;;-1:-1:-1;;;;;7426:83:29;;;;;;;;;7530:1;7526;:5;7522:358;;;7860:7;7865:1;7864:2;;7860:3;:7::i;:::-;7841:15;7840:27;;;;;;7832:36;;;;7522:358;9200:14;3178:21;9229:1;:7;9225:228;;-1:-1:-1;;;9253:7:29;;;;3235:56;9225:228;;;3344:20;9309:1;:7;9305:148;;-1:-1:-1;;;9333:7:29;;;;3400:28;9305:148;;;-1:-1:-1;9410:1:29;9305:148;9612:3;9607:8;;;;;2124:4;3512:22;9872:7;;9868:95;;-1:-1:-1;;9896:7:29;;;;2124:4;3570:34;9929:12;;9928:23;9918:33;;9868:95;3643:22;9977:1;:7;9973:95;;-1:-1:-1;;10001:7:29;;;;2124:4;3701:27;10034:12;;10033:23;10023:33;;9973:95;3767:21;10082:1;:7;10078:95;;-1:-1:-1;;10106:7:29;;;;2124:4;3824:24;10139:12;;10138:23;10128:33;;10078:95;3887:21;10187:1;:7;10183:95;;-1:-1:-1;;10211:7:29;;;;2124:4;3944:22;10244:12;;10243:23;10233:33;;10183:95;4005:21;10292:1;:7;10288:95;;-1:-1:-1;;10316:7:29;;;;2124:4;4062:21;10349:12;;10348:23;10338:33;;10288:95;4122:21;10397:1;:7;10393:95;;-1:-1:-1;;10421:7:29;;;;4122:21;4179;10454:12;;10453:23;10443:33;;10393:95;4239:20;10502:1;:7;10498:95;;-1:-1:-1;;10526:7:29;;;;2124:4;4296:21;10559:12;;10558:23;10548:33;;10498:95;4356:20;10607:1;:7;10603:95;;-1:-1:-1;;10631:7:29;;;;2124:4;4413:21;10664:12;;10663:23;10653:33;;10603:95;2124:4;11242:17;;;;;;11532:1;;11510:8;;;11509:19;11508:25;11544:17;;;;11508:25;-1:-1:-1;11605:1:29;2124:4;11583:8;;;11582:19;11581:25;11617:17;;;;11581:25;-1:-1:-1;11678:1:29;2124:4;11656:8;;;11655:19;11654:25;11690:17;;;;11654:25;-1:-1:-1;11751:1:29;2124:4;11729:8;;;11728:19;11727:25;11763:17;;;;11727:25;-1:-1:-1;11824:1:29;2124:4;11802:8;;;11801:19;11800:25;11836:17;;;;11800:25;-1:-1:-1;11897:1:29;2124:4;11875:8;;;11874:19;11873:25;11909:17;;;;11873:25;-1:-1:-1;11970:1:29;2124:4;11948:8;;;11947:19;11946:25;11982:17;;;;11946:25;-1:-1:-1;12043:1:29;2124:4;12021:8;;;12020:19;12019:25;12055:17;;;;12019:25;-1:-1:-1;12116:2:29;2124:4;12094:8;;;12093:19;12092:26;12129:17;;;;12092:26;-1:-1:-1;12190:2:29;2124:4;12168:8;;;12167:19;12166:26;12203:17;;;;12166:26;-1:-1:-1;12264:2:29;2124:4;12242:8;;;12241:19;12240:26;12277:17;;;;12240:26;-1:-1:-1;12858:3:29;2124:4;12814:19;;;12813:30;12812:42;;12811:50;;7361:5508;-1:-1:-1;;;;;;7361:5508:29:o;11867:632:14:-;-1:-1:-1;;;;;12089:17:14;;;12072:14;12089:17;;;:9;:17;;;;;;;;:30;;;;;;;;;12130:16;;;27:10:-1;;39:1;23:18;;45:23;;12130:29:14;;;;;;;;;;-1:-1:-1;;;;;;12130:29:14;;;;;;;;;;;12204:22;;;;12195:55;;12228:21;12195:8;:55::i;:::-;12170:22;;;:80;12287:14;;;;12278:39;;12303:13;12278:8;:39::i;:::-;12261:14;;;:56;12328:16;;;:35;;;12423:24;;;;12401:90;;12414:51;;12449:15;12414:8;:51::i;:::-;12467:16;;;:23;12401:12;:90::i;:::-;12374:24;;;;:117;-1:-1:-1;;;;;;;11867:632:14:o;6493:429::-;-1:-1:-1;;;;;6679:14:14;;;6662;6679;;;:6;:14;;;;;;;;:27;;;;;;;;;;;;6717:16;;;27:10:-1;;39:1;23:18;;;45:23;;6717:29:14;;;;;;;;;;;;-1:-1:-1;;;;;;6717:29:14;;;;;;6757:22;;;6790:14;;;:30;;;;6831:16;;;:34;6876:24;;:38;6493:429::o;2363:145:30:-;2425:7;2453:6;2445:32;;;;-1:-1:-1;;;;;2445:32:30;;;;;;;;;2499:1;2495;:5;;;;;;;2363:145;-1:-1:-1;;;2363:145:30:o;803:27937:14:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;803:27937:14;;;-1:-1:-1;803:27937:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;803:27937:14;;;-1:-1:-1;803:27937:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;803:27937:14;;;;;;;5:118:-1;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;259:116;;334:36;362:6;356:13;334:36;;382:118;;449:46;487:6;474:20;449:46;;507:122;;585:39;616:6;610:13;585:39;;890:118;;966:37;995:6;989:13;966:37;;1015:241;;1119:2;1107:9;1098:7;1094:23;1090:32;1087:2;;;1135:1;1132;1125:12;1087:2;1170:1;1187:53;1232:7;1212:9;1187:53;;1263:263;;1378:2;1366:9;1357:7;1353:23;1349:32;1346:2;;;1394:1;1391;1384:12;1346:2;1429:1;1446:64;1502:7;1482:9;1446:64;;1533:366;;;1654:2;1642:9;1633:7;1629:23;1625:32;1622:2;;;1670:1;1667;1660:12;1622:2;1705:1;1722:53;1767:7;1747:9;1722:53;;;1712:63;;1684:97;1812:2;1830:53;1875:7;1866:6;1855:9;1851:22;1830:53;;;1820:63;;1791:98;1616:283;;;;;;1906:491;;;;2044:2;2032:9;2023:7;2019:23;2015:32;2012:2;;;2060:1;2057;2050:12;2012:2;2095:1;2112:53;2157:7;2137:9;2112:53;;;2102:63;;2074:97;2202:2;2220:53;2265:7;2256:6;2245:9;2241:22;2220:53;;;2210:63;;2181:98;2310:2;2328:53;2373:7;2364:6;2353:9;2349:22;2328:53;;;2318:63;;2289:98;2006:391;;;;;;2404:617;;;;;2559:3;2547:9;2538:7;2534:23;2530:33;2527:2;;;2576:1;2573;2566:12;2527:2;2611:1;2628:53;2673:7;2653:9;2628:53;;;2618:63;;2590:97;2718:2;2736:53;2781:7;2772:6;2761:9;2757:22;2736:53;;;2726:63;;2697:98;2826:2;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;;;2834:63;;2805:98;2934:2;2952:53;2997:7;2988:6;2977:9;2973:22;2952:53;;;2942:63;;2913:98;2521:500;;;;;;;;3028:366;;;3149:2;3137:9;3128:7;3124:23;3120:32;3117:2;;;3165:1;3162;3155:12;3117:2;3200:1;3217:53;3262:7;3242:9;3217:53;;;3207:63;;3179:97;3307:2;3325:53;3370:7;3361:6;3350:9;3346:22;3325:53;;3401:257;;3513:2;3501:9;3492:7;3488:23;3484:32;3481:2;;;3529:1;3526;3519:12;3481:2;3564:1;3581:61;3634:7;3614:9;3581:61;;3665:263;;3780:2;3768:9;3759:7;3755:23;3751:32;3748:2;;;3796:1;3793;3786:12;3748:2;3831:1;3848:64;3904:7;3884:9;3848:64;;3935:869;;;;;;;4124:3;4112:9;4103:7;4099:23;4095:33;4092:2;;;4141:1;4138;4131:12;4092:2;4176:1;4193:53;4238:7;4218:9;4193:53;;;4183:63;;4155:97;4283:2;4301:53;4346:7;4337:6;4326:9;4322:22;4301:53;;;4291:63;;4262:98;4391:2;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;;;4399:63;;4370:98;4499:2;4517:53;4562:7;4553:6;4542:9;4538:22;4517:53;;;4507:63;;4478:98;4607:3;4626:53;4671:7;4662:6;4651:9;4647:22;4626:53;;;4616:63;;4586:99;4716:3;4735:53;4780:7;4771:6;4760:9;4756:22;4735:53;;;4725:63;;4695:99;4086:718;;;;;;;;;4811:241;;4915:2;4903:9;4894:7;4890:23;4886:32;4883:2;;;4931:1;4928;4921:12;4883:2;4966:1;4983:53;5028:7;5008:9;4983:53;;5329:617;;;;;5484:3;5472:9;5463:7;5459:23;5455:33;5452:2;;;5501:1;5498;5491:12;5452:2;5536:1;5553:53;5598:7;5578:9;5553:53;;5953:259;;6066:2;6054:9;6045:7;6041:23;6037:32;6034:2;;;6082:1;6079;6072:12;6034:2;6117:1;6134:62;6188:7;6168:9;6134:62;;6220:173;;6307:46;6349:3;6341:6;6307:46;;;-1:-1;;6382:4;6373:14;;6300:93;6401:142;6492:45;6531:5;6492:45;;;6487:3;6480:58;6474:69;;;6550:110;6623:31;6648:5;6623:31;;6794:159;6895:52;6915:31;6940:5;6915:31;;;6895:52;;6991:621;;7136:54;7184:5;7136:54;;;7203:86;7282:6;7277:3;7203:86;;;7196:93;;7309:56;7359:5;7309:56;;;7386:1;7371:219;7396:6;7393:1;7390:13;7371:219;;;7443:63;7502:3;7493:6;7487:13;7443:63;;;7436:70;;7523:60;7576:6;7523:60;;;7513:70;-1:-1;7418:1;7411:9;7371:219;;7620:111;7697:28;7719:5;7697:28;;7738:120;7821:31;7846:5;7821:31;;8000:159;8101:52;8121:31;8146:5;8121:31;;;8101:52;;8166:150;8265:45;8304:5;8265:45;;8480:347;;8592:39;8625:5;8592:39;;;8643:71;8707:6;8702:3;8643:71;;;8636:78;;8719:52;8764:6;8759:3;8752:4;8745:5;8741:16;8719:52;;;8792:29;8814:6;8792:29;;;8783:39;;;;8572:255;-1:-1;;;8572:255;8835:465;;8995:67;9059:2;9054:3;8995:67;;;9095:66;9075:87;;-1:-1;;;;;9191:2;9182:12;;9175:88;9291:2;9282:12;;8981:319;-1:-1;;8981:319;9309:465;;9469:67;9533:2;9528:3;9469:67;;;9569:66;9549:87;;-1:-1;;;;;9665:2;9656:12;;9649:88;9765:2;9756:12;;9455:319;-1:-1;;9455:319;9783:465;;9943:67;10007:2;10002:3;9943:67;;;10043:66;10023:87;;-1:-1;;;;;10139:2;10130:12;;10123:88;10239:2;10230:12;;9929:319;-1:-1;;9929:319;10257:364;;10417:67;10481:2;10476:3;10417:67;;;10517:66;10497:87;;10612:2;10603:12;;10403:218;-1:-1;;10403:218;10630:221;-1:-1;;;;;10766:79;;10759:92;10860:364;;11020:67;11084:2;11079:3;11020:67;;;11120:66;11100:87;;11215:2;11206:12;;11006:218;-1:-1;;11006:218;11233:221;-1:-1;;;;;11369:79;;11362:92;11463:364;;11623:67;11687:2;11682:3;11623:67;;;11723:66;11703:87;;11818:2;11809:12;;11609:218;-1:-1;;11609:218;11836:364;;11996:67;12060:2;12055:3;11996:67;;;12096:66;12076:87;;12191:2;12182:12;;11982:218;-1:-1;;11982:218;12209:364;;12369:67;12433:2;12428:3;12369:67;;;12469:66;12449:87;;12564:2;12555:12;;12355:218;-1:-1;;12355:218;12582:364;;12742:67;12806:2;12801:3;12742:67;;;12842:66;12822:87;;12937:2;12928:12;;12728:218;-1:-1;;12728:218;12955:221;-1:-1;;;;;13091:79;;13084:92;13185:221;-1:-1;;;;;13321:79;;13314:92;13415:221;-1:-1;;;;;13551:79;;13544:92;13645:364;;13805:67;13869:2;13864:3;13805:67;;;13905:66;13885:87;;14000:2;13991:12;;13791:218;-1:-1;;13791:218;14018:465;;14178:67;14242:2;14237:3;14178:67;;;14278:66;14258:87;;-1:-1;;;;;14374:2;14365:12;;14358:88;14474:2;14465:12;;14164:319;-1:-1;;14164:319;14492:465;;14652:67;14716:2;14711:3;14652:67;;;14752:66;14732:87;;14853:66;14848:2;14839:12;;14832:88;14948:2;14939:12;;14638:319;-1:-1;;14638:319;14966:364;;15126:67;15190:2;15185:3;15126:67;;;15226:66;15206:87;;15321:2;15312:12;;15112:218;-1:-1;;15112:218;15339:364;;15499:67;15563:2;15558:3;15499:67;;;15599:66;15579:87;;15694:2;15685:12;;15485:218;-1:-1;;15485:218;15712:364;;15872:67;15936:2;15931:3;15872:67;;;15972:66;15952:87;;16067:2;16058:12;;15858:218;-1:-1;;15858:218;16085:364;;16245:67;16309:2;16304:3;16245:67;;;16345:66;16325:87;;16440:2;16431:12;;16231:218;-1:-1;;16231:218;16458:364;;16618:67;16682:2;16677:3;16618:67;;;16718:66;16698:87;;16813:2;16804:12;;16604:218;-1:-1;;16604:218;16831:364;;16991:67;17055:2;17050:3;16991:67;;;17091:66;17071:87;;17186:2;17177:12;;16977:218;-1:-1;;16977:218;17204:465;;17364:67;17428:2;17423:3;17364:67;;;17464:66;17444:87;;-1:-1;;;;;17560:2;17551:12;;17544:88;17660:2;17651:12;;17350:319;-1:-1;;17350:319;17678:465;;17838:67;17902:2;17897:3;17838:67;;;17938:66;17918:87;;-1:-1;;;;;18034:2;18025:12;;18018:88;18134:2;18125:12;;17824:319;-1:-1;;17824:319;18152:364;;18312:67;18376:2;18371:3;18312:67;;;18412:66;18392:87;;18507:2;18498:12;;18298:218;-1:-1;;18298:218;18525:221;-1:-1;;;;;18661:79;;18654:92;19047:114;19126:29;19149:5;19126:29;;19168:383;;19315:75;19386:3;19377:6;19315:75;;;19412:2;19407:3;19403:12;19396:19;;19426:75;19497:3;19488:6;19426:75;;;-1:-1;19523:2;19514:12;;19303:248;-1:-1;;19303:248;19558:244;;19677:75;19748:3;19739:6;19677:75;;;-1:-1;19774:2;19765:12;;19665:137;-1:-1;19665:137;19809:213;19927:2;19912:18;;19941:71;19916:9;19985:6;19941:71;;20029:229;20155:2;20140:18;;20169:79;20144:9;20221:6;20169:79;;20265:547;20467:3;20452:19;;20482:71;20456:9;20526:6;20482:71;;;20564:72;20632:2;20621:9;20617:18;20608:6;20564:72;;;20647;20715:2;20704:9;20700:18;20691:6;20647:72;;;20730;20798:2;20787:9;20783:18;20774:6;20730:72;;20819:435;20993:2;20978:18;;21007:71;20982:9;21051:6;21007:71;;;21089:72;21157:2;21146:9;21142:18;21133:6;21089:72;;;21172;21240:2;21229:9;21225:18;21216:6;21172:72;;21261:771;21519:3;21504:19;;21534:71;21508:9;21578:6;21534:71;;;21616:72;21684:2;21673:9;21669:18;21660:6;21616:72;;;21699;21767:2;21756:9;21752:18;21743:6;21699:72;;;21782;21850:2;21839:9;21835:18;21826:6;21782:72;;;21865:73;21933:3;21922:9;21918:19;21909:6;21865:73;;;21949;22017:3;22006:9;22002:19;21993:6;21949:73;;;21490:542;;;;;;;;;;22039:324;22185:2;22170:18;;22199:71;22174:9;22243:6;22199:71;;;22281:72;22349:2;22338:9;22334:18;22325:6;22281:72;;22370:659;22600:3;22585:19;;22615:71;22589:9;22659:6;22615:71;;;22697:72;22765:2;22754:9;22750:18;22741:6;22697:72;;;22780;22848:2;22837:9;22833:18;22824:6;22780:72;;;22863;22931:2;22920:9;22916:18;22907:6;22863:72;;;22946:73;23014:3;23003:9;22999:19;22990:6;22946:73;;23036:361;23204:2;23218:47;;;23189:18;;23279:108;23189:18;23373:6;23279:108;;23404:201;23516:2;23501:18;;23530:65;23505:9;23568:6;23530:65;;23612:213;23730:2;23715:18;;23744:71;23719:9;23788:6;23744:71;;23832:561;24069:2;24054:18;;24083:71;24058:9;24127:6;24083:71;;;24165:72;24233:2;24222:9;24218:18;24209:6;24165:72;;;24248:135;24379:2;24368:9;24364:18;24248:135;;24400:561;24637:2;24622:18;;24651:71;24626:9;24695:6;24651:71;;;24733:72;24801:2;24790:9;24786:18;24777:6;24733:72;;;24816:135;24947:2;24936:9;24932:18;24816:135;;24968:561;25205:2;25190:18;;25219:71;25194:9;25263:6;25219:71;;;25301:72;25369:2;25358:9;25354:18;25345:6;25301:72;;;25384:135;25515:2;25504:9;25500:18;25384:135;;25536:499;25734:2;25719:18;;25748:79;25723:9;25800:6;25748:79;;;25838:88;25922:2;25911:9;25907:18;25898:6;25838:88;;;25937;26021:2;26010:9;26006:18;25997:6;25937:88;;26042:450;26251:2;26236:18;;26265:71;26240:9;26309:6;26265:71;;;26347:135;26478:2;26467:9;26463:18;26347:135;;26499:301;26637:2;26651:47;;;26622:18;;26712:78;26622:18;26776:6;26712:78;;26807:407;26998:2;27012:47;;;26983:18;;27073:131;26983:18;27073:131;;27221:407;27412:2;27426:47;;;27397:18;;27487:131;27397:18;27487:131;;27635:407;27826:2;27840:47;;;27811:18;;27901:131;27811:18;27901:131;;28049:407;28240:2;28254:47;;;28225:18;;28315:131;28225:18;28315:131;;28463:407;28654:2;28668:47;;;28639:18;;28729:131;28639:18;28729:131;;28877:450;29086:2;29071:18;;29100:134;29075:9;29100:134;;;29245:72;29313:2;29302:9;29298:18;29289:6;29245:72;;29334:407;29525:2;29539:47;;;29510:18;;29600:131;29510:18;29600:131;;29748:407;29939:2;29953:47;;;29924:18;;30014:131;29924:18;30014:131;;30162:407;30353:2;30367:47;;;30338:18;;30428:131;30338:18;30428:131;;30576:407;30767:2;30781:47;;;30752:18;;30842:131;30752:18;30842:131;;30990:339;31171:2;31156:18;;31185:134;31160:9;31185:134;;31336:407;31527:2;31541:47;;;31512:18;;31602:131;31512:18;31602:131;;31750:407;31941:2;31955:47;;;31926:18;;32016:131;31926:18;32016:131;;32164:407;32355:2;32369:47;;;32340:18;;32430:131;32340:18;32430:131;;32578:407;32769:2;32783:47;;;32754:18;;32844:131;32754:18;32844:131;;32992:407;33183:2;33197:47;;;33168:18;;33258:131;33168:18;33258:131;;33406:407;33597:2;33611:47;;;33582:18;;33672:131;33582:18;33672:131;;33820:407;34011:2;34025:47;;;33996:18;;34086:131;33996:18;34086:131;;34234:407;34425:2;34439:47;;;34410:18;;34500:131;34410:18;34500:131;;34648:407;34839:2;34853:47;;;34824:18;;34914:131;34824:18;34914:131;;35062:407;35253:2;35267:47;;;35238:18;;35328:131;35238:18;35328:131;;35476:407;35667:2;35681:47;;;35652:18;;35742:131;35652:18;35742:131;;35890:407;36081:2;36095:47;;;36066:18;;36156:131;36066:18;36156:131;;36304:339;36485:2;36470:18;;36499:134;36474:9;36499:134;;36870:324;37016:2;37001:18;;37030:71;37005:9;37074:6;37030:71;;;37112:72;37180:2;37169:9;37165:18;37156:6;37112:72;;37201:547;37403:3;37388:19;;37418:71;37392:9;37462:6;37418:71;;;37500:72;37568:2;37557:9;37553:18;37544:6;37500:72;;37755:659;37985:3;37970:19;;38000:71;37974:9;38044:6;38000:71;;39087:205;39201:2;39186:18;;39215:67;39190:9;39255:6;39215:67;;39301:121;39410:4;39398:17;;39379:43;39431:107;39521:12;;39505:33;39776:178;39894:19;;;39943:4;39934:14;;39887:67;40134:105;;40203:31;40228:5;40203:31;;40246:92;40319:13;40312:21;;40295:43;40431:128;-1:-1;;;;;40500:54;;40483:76;40652:88;40730:4;40719:16;;40702:38;41360:129;;41447:37;41478:5;41447:37;;41496:123;;41583:31;41608:5;41583:31;;41756:121;;41835:37;41866:5;41835:37;;42007:268;42072:1;42079:101;42093:6;42090:1;42087:13;42079:101;;;42160:11;;;42154:18;42141:11;;;42134:39;42115:2;42108:10;42079:101;;;42195:6;42192:1;42189:13;42186:2;;;-1:-1;;42260:1;42242:16;;42235:27;42056:219;42283:95;;42347:26;42367:5;42466:89;42530:20;42544:5;42530:20;;42643:97;42731:2;42711:14;-1:-1;;42707:28;;42691:49;42749:81;42814:2;42810:14;;42791:39",
    "source": "// (c) Kallol Borah, 2020\r\n// Implementation of the Verified zero coupon bond.\r\n// SPDX-License-Identifier: BUSL\r\n\r\npragma solidity 0.5.7;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"./interfaces/ViaCash.sol\";\r\nimport \"./interfaces/ViaBond.sol\";\r\nimport \"./interfaces/ViaToken.sol\";\r\nimport \"./interfaces/ViaOracle.sol\";\r\nimport \"./interfaces/ViaFactory.sol\";\r\nimport \"./interfaces/VerifiedClient.sol\";\r\nimport \"./interfaces/VerifiedRates.sol\";\r\n\r\nimport \"./math/Math.sol\";\r\nimport \"./math/FixedPoint.sol\";\r\nimport \"./math/LogExpMath.sol\";\r\n\r\nimport \"./utilities/ERC20.sol\";\r\nimport \"./utilities/Pausable.sol\";\r\nimport \"./utilities/StringUtils.sol\";\r\n\r\nimport \"@openzeppelin/upgrades/contracts/Initializable.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\";\r\n\r\ncontract Bond is ViaBond, Initializable, ERC20, Ownable, Pausable {\r\n\r\n    using stringutils for *;\r\n    using Math for uint256;\r\n    using FixedPoint for uint256;\r\n    using LogExpMath for uint256;\r\n\r\n    //token factory address\r\n    ViaFactory private factory;\r\n\r\n    VerifiedRates private rates;\r\n\r\n    //oracle\r\n    ViaOracle private oracle;\r\n\r\n    //currency of bond token (eg, VCUSD)\r\n    bytes32 public bondCurrency;\r\n    //name of bond token (eg, VBUSD)\r\n    bytes32 public bondName;\r\n    \r\n    //token address\r\n    address private token;\r\n\r\n    //mapping issuer (address) to address of bond token (address) which acts as identifier for bonds on offer\r\n    mapping(address => mapping (address => ViaBond.bond)) public issues;\r\n\r\n    //mapping purchaser (address) to address of bond token (address) which acts as identifier for bonds subscribed \r\n    mapping(address => mapping (address => ViaBond.bond)) public purchases;\r\n\r\n    //array of issues of this bond, where bond IDs are their addresses of their token issues\r\n    address[] public bondsIssued;\r\n\r\n    //events to capture and report to Verified oracle\r\n    event BondIssued(address indexed party, address token, bytes32 bondName, uint256 amount, bytes32 currency, uint256 collateralAmount, uint256 issueTime);\r\n    event BondRedeemed(address indexed party, address token, uint256 tokenAmount, bytes32 tokenName, uint256 amount, bytes32 currency);\r\n    event BondPurchased(address indexed party, address token, bytes32 bondName, uint256 amount, bytes32 currency, uint256 paidInAmount, uint256 purchaseTime);\r\n    event BondLiquidated(address indexed party, address token, uint256 tokenAmount, bytes32 tokenName, uint256 amount, bytes32 currency);\r\n\r\n    //mutex\r\n    mapping(bytes32 => bool) private lock;\r\n\r\n    //initiliaze proxies\r\n    function initialize(bytes32 _name, bytes32 _currency, address _owner, address _oracle, address _token, address _fee) public initializer {\r\n        Ownable.initialize(_owner);\r\n        factory = ViaFactory(msg.sender);\r\n        oracle = ViaOracle(_oracle);\r\n        setName(string(abi.encodePacked(_name)));\r\n        //setSymbol(_name.substring(0,5));\r\n        bondName = _name;\r\n        bondCurrency = _currency;\r\n        token = _token;\r\n        rates = VerifiedRates(_fee);\r\n    }\r\n\r\n    function requestIssue(uint256 amount, address payer, bytes32 currency, address cashContract) external returns(bool){\r\n        // contract must not be paused\r\n        require(paused == false);\r\n        //bonds denominated in a currency can not be collateralized with that currency itself\r\n        require(bondCurrency!=currency);\r\n        //check aml status\r\n        //require(amlCheck(payer)==true, \"AMLA check fail\");\r\n        require(factory.getType(msg.sender) == \"ViaCash\" || factory.checkSupportForToken(currency), \"Unsupported collateral for issue\");\r\n        return(issue(amount, payer, currency, cashContract));\r\n    }\r\n\r\n    //requesting issue of bond tokens to payer (issuer) that can pay in ether, or in cash tokens\r\n    function issue(uint256 amount, address payer, bytes32 currency, address cashContract) private returns(bool){             \r\n        //adds paid in amount to the paid in currency's cash balance\r\n        if(factory.getType(cashContract)==\"ViaCash\"){\r\n            if(!ViaCash(cashContract).requestAddToBalance(amount, payer)){\r\n                return false;\r\n            }\r\n        }\r\n        else if(factory.checkSupportForToken(currency)==true){\r\n            //for acceptable collateral for bonds                       \r\n            IERC20(cashContract).transferFrom(payer, address(this), amount);\r\n            uint256 scalingFactor = _computeScalingFactor(IERC20(cashContract));\r\n            amount = _upscale(amount, scalingFactor);\r\n        }\r\n        //call oracle to calculate par value\r\n        uint256 parValue;\r\n        if(factory.getTokenByNameType(currency, \"ViaCash\")!=address(0x0))\r\n            //if the cash token paid in to a bond token is different from the denomination of this bond, \r\n            //tokens of this bond need to be issued from the issuers' account after pricing the bond with applicable coupon rates\r\n            parValue = FixedPoint.mulDown(oracle.request(currency, bondCurrency, \"ver\"), amount);\r\n        else\r\n            //if any other supported token is paid into a bond contract, \r\n            //the bond contract will issue bond tokens of an equivalent face value.\r\n            parValue = FixedPoint.mulDown(oracle.request(currency, bondCurrency.substringinbytes(2,5), \"er\"), amount);\r\n        //pay issuing fee\r\n        parValue = payFee(parValue, bondCurrency, \"issuing\");\r\n        //request issue of bond at par value\r\n        finallyIssue(payer, parValue, amount, currency);\r\n    }\r\n\r\n    //issue bond tokens using factory and set total supply of issued bond token\r\n    function finallyIssue(address payer, uint256 parValue, uint256 paidInAmount, bytes32 paidCurrency) private {\r\n        uint256 issueTime = now;\r\n        //issue bond which initializes a token with the attributes of the bond\r\n        address issuedBond = factory.createToken(token, payer, bondName, keccak256(abi.encodePacked(payer,issueTime)));\r\n        //initialize bond token\r\n        ViaToken vt = ViaToken(issuedBond);\r\n        vt.addBalance(payer, parValue);\r\n        vt.addTotalSupply(parValue);        \r\n        //keep track of issues\r\n        bondsIssued.push(issuedBond);\r\n        storeIssuedBond(payer, parValue, paidInAmount, paidCurrency, issueTime, issuedBond);\r\n        //generate event\r\n        emit BondIssued(payer, issuedBond, bondName, parValue, paidCurrency, paidInAmount, issueTime);\r\n    }\r\n\r\n    //stores issued bond details\r\n    function storeIssuedBond(address _party, uint256 _parValue, uint256 _paidInAmount, bytes32 _paidInCurrency, uint256 _timeIssued, address _issuedBond) private {\r\n        bond storage b = issues[_party][_issuedBond];\r\n        b.counterParties.push(_party);\r\n        b.parValue = _parValue;\r\n        b.paidInAmount = _paidInAmount;\r\n        b.paidInCurrency = _paidInCurrency;\r\n        b.timeIssuedOrSubscribed = _timeIssued;\r\n    }\r\n\r\n    function requestPurchase(uint256 amount, address payer, bytes32 currency, address cashContract) external returns(bool){\r\n        // contract must not be paused\r\n        require(paused == false);\r\n        //ensure that brought amount is not zero\r\n        require(amount != 0, \"Purchase amount is zero\");\r\n        //check aml status\r\n        //require(amlCheck(payer)==true, \"AMLA check fail\");\r\n        require(factory.getType(msg.sender) == \"ViaBondToken\");\r\n        require(factory.getType(cashContract)==\"ViaCash\" || factory.checkSupportForToken(currency), \"Purchase not with supported token\");\r\n        return(purchase(amount, payer, currency, cashContract, msg.sender));\r\n    }\r\n    \r\n    //requesting purchase of bond tokens to payer (buyer) that can pay in cash tokens\r\n    function purchase(uint256 amount, address payer, bytes32 currency, address cashContract, address tokenContract) private returns(bool){\r\n        if(factory.getType(cashContract)==\"ViaCash\"){\r\n            //adds paid in amount to the paid in currency's cash balance\r\n            if(!ViaCash(cashContract).requestAddToBalance(amount, payer)){\r\n                return false;\r\n            }\r\n        }\r\n        else if(factory.checkSupportForToken(currency)==true){\r\n            //for acceptable purchasing token for bonds                       \r\n            IERC20(cashContract).transferFrom(payer, address(this), amount);\r\n            uint256 scalingFactor = _computeScalingFactor(IERC20(cashContract));\r\n            amount = _upscale(amount, scalingFactor);\r\n        }\r\n        uint256 er;\r\n        uint256 ir;\r\n        uint256 price;\r\n        //find tenure of bond set by its issuer and adjust it by the time it is being purchased\r\n        ViaToken vt = ViaToken(tokenContract);\r\n        address issuer = vt.getIssuer();\r\n        uint256 tenure = factory.getBondTerm(tokenContract)==0 ? 31536000 : factory.getBondTerm(tokenContract);\r\n        tenure = Math.sub(now, issues[issuer][tokenContract].timeIssuedOrSubscribed)==0 ? tenure : \r\n                    Math.sub(tenure, Math.sub(now, issues[issuer][tokenContract].timeIssuedOrSubscribed));\r\n        if(currency!=bondCurrency){\r\n            //if the cash token paid in to a bond token is different from the denomination of this bond, \r\n            //tokens of this bond need to be transferred from an issuers' account after pricing the bond with applicable coupon rates\r\n            er = oracle.request(currency, bondCurrency, \"er\");\r\n            ir = oracle.request(currency, bondCurrency, \"ir\");\r\n            price = FixedPoint.mulDown(FixedPoint.mulDown(amount, er), LogExpMath.pow(FixedPoint.add(1e18, ir), FixedPoint.divDown(tenure, 31536000)));\r\n        }\r\n        else{\r\n            //if the cash token paid in is the same denomination of this bond, then\r\n            //tokens of this bond need to be transferred from an issuer's account after pricing the bond with the domestic (paid in currency) coupon rates\r\n            ir = oracle.request(currency, currency, \"ir\");\r\n            price = FixedPoint.mulDown(amount, LogExpMath.pow(FixedPoint.add(1e18, ir), FixedPoint.divDown(tenure, 31536000)));\r\n        }\r\n        //request purchase of bond\r\n        finallyPurchase(payer, price, amount, currency, cashContract, tokenContract, issuer);\r\n    }\r\n    \r\n    function finallyPurchase(address payer, uint256 purchaseValue, uint256 paidInAmount, bytes32 paidInCashToken, address cashContract, address tokenContract, address issuer) private {\r\n        uint256 purchaseTime = now;\r\n        require(!lock[\"purchase\"]);\r\n        lock[\"purchase\"] = true;\r\n        //transfer cash paid in by purchaser to issuer from whom bond is transferred to purchaser\r\n        //if there is enough issued bonds, transfer bond from issuer to payer\r\n        if(ViaToken(tokenContract).transferToken(issuer, payer, purchaseValue)){                \r\n            //_transfer(issuer, payer, purchaseValue);\r\n            //deduct paid out cash token from purchaser cash balance which was added to cash contract's balance and transfer to issuer\r\n            send(cashContract, paidInAmount, issuer);\r\n            //add purchaser as counter party in issuer's record\r\n            bond storage b = issues[issuer][tokenContract];\r\n            b.counterParties.push(payer);\r\n            //add to issued value of bond for amount transferred by purchaser\r\n            issues[issuer][tokenContract].purchasedIssueAmount = Math.add(issues[issuer][tokenContract].purchasedIssueAmount, purchaseValue); \r\n            //add bond to purchaser's record\r\n            storePurchasedBond(payer, issuer, purchaseValue, paidInAmount, paidInCashToken, purchaseTime, tokenContract);\r\n            //bond purchased event\r\n            emit BondPurchased(payer, tokenContract, bondName, purchaseValue, paidInCashToken, paidInAmount, purchaseTime);\r\n        }\r\n        lock[\"purchase\"] = false;        \r\n    }\r\n\r\n    //stores purchased bond details\r\n    function storePurchasedBond(address _payer, address _party, uint256 _purchasedIssueAmount, uint256 _paidInAmount, bytes32 _paidInCashToken, uint256 _timeSubscribed, address _issuedBond) private {\r\n        bond storage b = purchases[_payer][_issuedBond];\r\n        b.counterParties.push(_party);\r\n        b.purchasedIssueAmount = Math.add(b.purchasedIssueAmount, _purchasedIssueAmount);\r\n        b.paidInAmount = Math.add(b.paidInAmount, _paidInAmount);\r\n        b.paidInCurrency = _paidInCashToken;\r\n        b.timeIssuedOrSubscribed = Math.divDown(Math.add(b.timeIssuedOrSubscribed, _timeSubscribed), b.counterParties.length);\r\n    }\r\n\r\n    function requestRedemption(uint256 amount, address payer, bytes32 currency, address tokenContract) external returns(bool){\r\n        // contract must not be paused\r\n        require(paused == false);\r\n        //check aml status\r\n        require(amlCheck(payer)==true, \"AMLA check fail\");\r\n        require(factory.getType(msg.sender) == \"ViaBondToken\");\r\n        //if the paying in is for repayment of a bond already issued, then\r\n        //transfer the paid in amount to the bond holders, release the collateral back to the issuer and extinguish the bond\r\n        if(redeem(amount, payer, currency, \"CashTransfer\", tokenContract))\r\n            return true;\r\n        else\r\n            return false;\r\n    }\r\n    \r\n    //requesting redemption of Verified bonds and transfer of cash collateral to issuer \r\n    function redeem(uint256 amount, address payer, bytes32 tokenName, bytes32 action, address tokenContract) private returns(bool){\r\n        //if Verified bond holder redeems bond on day of expiry, issuer collateral is transferred to bond holder\r\n        if(action==\"TokenTransfer\"){\r\n            bool status = false;\r\n            //find if the bond was issued to payer (purchaser) earlier\r\n            if(purchases[payer][tokenContract].purchasedIssueAmount==amount){\r\n                //check if redemption term is over\r\n                if(purchases[payer][tokenContract].timeIssuedOrSubscribed > 0){\r\n                    address issuer = purchases[payer][tokenContract].counterParties[0];\r\n                    //uint256 redemptionAmount = amount;\r\n                    uint256 redemptionAmount = FixedPoint.mulDown(FixedPoint.divDown(amount, issues[purchases[payer][tokenContract].counterParties[0]][tokenContract].parValue), \r\n                                                issues[purchases[payer][tokenContract].counterParties[0]][tokenContract].paidInAmount);\r\n                    //adjust redemptionAmount for time subscribed\r\n                    redemptionAmount = FixedPoint.mulDown(redemptionAmount, FixedPoint.divDown(\r\n                                        Math.sub(now, purchases[payer][tokenContract].timeIssuedOrSubscribed),\r\n                                        Math.sub(now, issues[issuer][tokenContract].timeIssuedOrSubscribed)));\r\n                    require(!lock[\"liquidation\"]);\r\n                    lock[\"liquidation\"] = true;                    \r\n                    if(redemptionAmount >= 0){\r\n                        bytes32 paidInCurrency = issues[purchases[payer][tokenContract].counterParties[0]][tokenContract].paidInCurrency;\r\n                        //pay fee on bond redemption\r\n                        redemptionAmount = payFee(redemptionAmount, paidInCurrency, \"redemption\");\r\n                        address viaAddress;\r\n                        if(factory.checkSupportForToken(paidInCurrency)){\r\n                            viaAddress = factory.getCurrencyToken(paidInCurrency);\r\n                        }\r\n                        else{\r\n                            viaAddress = factory.getIssuer(\"ViaCash\", paidInCurrency);\r\n                        }\r\n                        send(viaAddress, redemptionAmount, payer);\r\n                        //adjust total supply of this bond\r\n                        ViaToken(tokenContract).reduceSupply(amount);                        \r\n                        //reduce payer's balance of bond held\r\n                        ViaToken(tokenContract).reduceBalance(payer, amount);\r\n                        //generate event\r\n                        emit BondLiquidated(payer, tokenContract, amount, tokenName, redemptionAmount, paidInCurrency);\r\n                        //remove payer (purchaser) from counter party list of issuer \r\n                        uint length = issues[issuer][tokenContract].counterParties.length;\r\n                        for(uint p=0; p<length; p++){\r\n                            if(issues[issuer][tokenContract].counterParties[p]==payer){\r\n                                delete(issues[issuer][tokenContract].counterParties[p]);\r\n                            }                    \r\n                        }\r\n                        //remove payer (purchaser) record from list of purchasers\r\n                        delete(purchases[payer][tokenContract]);\r\n                    }\r\n                    lock[\"liquidation\"] = false;\r\n                    status = true;\r\n                }\r\n            }\r\n            //find if the bond was issued to payer (issuer) earlier and the issuer is returning unsold bond tokens\r\n            else if(ViaToken(tokenContract).getBalance(payer) >= amount){\r\n                require(!lock[\"redemption\"]);\r\n                lock[\"redemption\"] = true;\r\n                bytes32 paidInCurrency = issues[payer][tokenContract].paidInCurrency;\r\n                //calculate redemption amount based on how much collateral is not encumbered\r\n                uint256 uncumberedAmount = FixedPoint.mulDown(FixedPoint.divDown(amount, issues[payer][tokenContract].parValue), issues[payer][tokenContract].paidInAmount);\r\n                //pay fee on bond redemption\r\n                uncumberedAmount = payFee(uncumberedAmount, paidInCurrency, \"redemption\");\r\n                //transfer unencumbered amount from issuer to issuer (redeemer) of bond\r\n                address viaAddress;\r\n                if(factory.checkSupportForToken(paidInCurrency))\r\n                    viaAddress = factory.getCurrencyToken(paidInCurrency);\r\n                else\r\n                    viaAddress = factory.getIssuer(\"ViaCash\", paidInCurrency);\r\n                send(viaAddress, uncumberedAmount, payer);\r\n                //adjust total supply of this bond\r\n                ViaToken(tokenContract).reduceSupply(amount);                \r\n                //reduce payer's balance of bond held\r\n                ViaToken(tokenContract).reduceBalance(payer, amount);\r\n                //generate event\r\n                emit BondRedeemed(payer, tokenContract, amount, tokenName, uncumberedAmount, paidInCurrency);\r\n                lock[\"redemption\"] = false; \r\n                status = true;\r\n            }\r\n            return status;\r\n        }\r\n        //if Verified bond issuer pays in cash for redemption, it is paid back to Verified bond holders and collateral paid back to issuers\r\n        else if(action==\"CashTransfer\"){            \r\n            address viaAddress;\r\n            bool status = false;\r\n            uint256 totalToRedeem;\r\n            address issuer = payer;\r\n            address bondToken = tokenContract;\r\n            uint256 redeemAmount = amount;\r\n            bytes32 bondTokenName = tokenName;\r\n            if(issues[issuer][bondToken].timeIssuedOrSubscribed > 0){   \r\n                require(!lock[\"cashredemption\"]);\r\n                lock[\"cashredemption\"] = true;             \r\n                if(factory.checkSupportForToken(bondTokenName)){\r\n                    viaAddress = factory.getCurrencyToken(bondTokenName);\r\n                    if(IERC20(viaAddress).balanceOf(issuer)<redeemAmount)\r\n                        return status;\r\n                }\r\n                else{\r\n                    viaAddress = factory.getIssuer(\"ViaCash\", bondTokenName);\r\n                    if(!ViaCash(viaAddress).requestAddToBalance(redeemAmount, issuer)){\r\n                        return status;\r\n                    }\r\n                }\r\n                //find the bond that was issued by payer (issuer) earlier\r\n                uint p = 0;\r\n                for(p=0; p<issues[issuer][bondToken].counterParties.length; p++){\r\n                    address purchaser = issues[issuer][bondToken].counterParties[p];\r\n                    //release collateral and transfer to issuer of bond\r\n                    //and send paid in amount to purchaser of bond\r\n                    //calculate redemption amount\r\n                    uint256 proportionPurchased = FixedPoint.divDown(purchases[purchaser][bondToken].purchasedIssueAmount, issues[issuer][tokenContract].parValue);\r\n                    uint256 redemptionAmount = FixedPoint.mulDown(proportionPurchased, issues[issuer][bondToken].parValue);\r\n                    //adjust redemptionAmount for time subscribed\r\n                    redemptionAmount = FixedPoint.mulDown(redemptionAmount, FixedPoint.divDown(\r\n                                        Math.sub(now, purchases[purchaser][bondToken].timeIssuedOrSubscribed),\r\n                                        Math.sub(now, issues[issuer][bondToken].timeIssuedOrSubscribed)));                        \r\n                    //send paid in amount to bond purchaser\r\n                    if(viaAddress!=address(0x0) && (redemptionAmount > 0)){\r\n                        //pay fee on bond redemption\r\n                        redemptionAmount = payFee(redemptionAmount, bondTokenName, \"redemption\");\r\n                        send(viaAddress, redemptionAmount, purchaser);\r\n                        //add redeemed amount to total\r\n                        totalToRedeem = Math.add(totalToRedeem, redemptionAmount);\r\n                        //adjust total supply of this bond\r\n                        ViaToken(bondToken).reduceSupply(redemptionAmount);                            \r\n                        //reduce counter party's balance of bond held\r\n                        ViaToken(bondToken).reduceBalance(purchaser, redemptionAmount);\r\n                        purchases[purchaser][bondToken].purchasedIssueAmount = \r\n                            Math.sub(purchases[purchaser][bondToken].purchasedIssueAmount, redemptionAmount);\r\n                        status = true;\r\n                    }                        \r\n                    if(status && purchases[purchaser][bondToken].purchasedIssueAmount==0)\r\n                        //if a purchaser is redeemed, then delete its record from list of purchases\r\n                        delete(purchases[purchaser][bondToken]);                    \r\n                }\r\n                lock[\"cashredemption\"] = false;\r\n                if(status){\r\n                    //find proportion to redeem\r\n                    uint256 proportionToRedeem = FixedPoint.divDown(totalToRedeem, issues[issuer][bondToken].purchasedIssueAmount);\r\n                    //returned redeemed proportion of collateral to payer (issuer)\r\n                    uint256 amountToRedeem = FixedPoint.mulDown(issues[issuer][bondToken].paidInAmount, proportionToRedeem);\r\n                    bytes32 paidInCurrency = issues[issuer][bondToken].paidInCurrency;\r\n                    send(viaAddress, amountToRedeem, issuer);\r\n                    if(p==issues[issuer][bondToken].counterParties.length-1)\r\n                        //if all bond purchasers are redeemed, then delete the issuer record\r\n                        delete(issues[issuer][bondToken]);\r\n                    emit BondRedeemed(issuer, bondToken, redeemAmount, bondTokenName, amountToRedeem, paidInCurrency);\r\n                }\r\n            }\r\n            return status;\r\n        }\r\n    }\r\n    \r\n    //redirected from transferFrom function in bond token contract\r\n    function transferForward(address sender, address receiver, uint256 tokens, address forwarder) external returns (bool){\r\n        // contract must not be paused\r\n        require(paused == false);\r\n        //check aml status\r\n        require(amlCheck(sender)==true);\r\n        require(amlCheck(receiver)==true);     \r\n        //check if tokens are being transferred to this bond contract\r\n        if(receiver != address(this) && receiver == forwarder){         \r\n            //if token name is the same, this transfer has to be redeemed\r\n            if(redeem(tokens, sender, bondName, \"TokenTransfer\", forwarder))\r\n                return true;\r\n            else\r\n                return false;\r\n        }\r\n        else {\r\n            //bond tokens are being sent to a user account\r\n            //sender is transferring its full purchase amount of bonds\r\n            //transfer of bond token to another user has to be of the exact amount purchased earlier by sender\r\n            if(purchases[sender][forwarder].purchasedIssueAmount==tokens){\r\n                if(transferBondToken(forwarder, sender, receiver, tokens))\r\n                    return true;\r\n                else\r\n                    return false;                \r\n            }\r\n            return false;\r\n        }\r\n    }\r\n\r\n    function transferBondToken(address issuedBond, address sender, address receiver, uint tokens) private returns (bool){\r\n        if(ViaToken(issuedBond).transferToken(sender, receiver, tokens)){\r\n            purchases[receiver][issuedBond] = purchases[sender][issuedBond];\r\n            delete purchases[sender][issuedBond];\r\n            return true;\r\n        }\r\n        else{\r\n            return false;\r\n        }\r\n    }\r\n\r\n    function getBonds() external view returns(address[] memory){\r\n        return bondsIssued;\r\n    }\r\n\r\n    function getBondIssues(address issuer, address bondToken) external view returns(uint256, uint256, uint256, bytes32, uint256){\r\n        return (issues[issuer][bondToken].parValue,\r\n                issues[issuer][bondToken].purchasedIssueAmount,\r\n                issues[issuer][bondToken].paidInAmount,\r\n                issues[issuer][bondToken].paidInCurrency,\r\n                issues[issuer][bondToken].timeIssuedOrSubscribed);\r\n    }\r\n\r\n    function getBondPurchases(address purchaser, address bondToken) external view returns(uint256, uint256, bytes32, uint256){\r\n        return (issues[purchaser][bondToken].purchasedIssueAmount,\r\n                issues[purchaser][bondToken].paidInAmount,\r\n                issues[purchaser][bondToken].paidInCurrency,\r\n                issues[purchaser][bondToken].timeIssuedOrSubscribed);\r\n    }\r\n\r\n    function send(address cash, uint256 amount, address payee) private {\r\n        if(factory.getType(cash) == \"ViaCash\")\r\n            ViaCash(cash).requestDeductFromBalance(amount, payee);\r\n        else\r\n            IERC20(cash).transfer(payee, amount);\r\n    }\r\n\r\n    function payFee(uint256 value, bytes32 currency, bytes32 action) private returns (uint256){\r\n        uint256 fees;\r\n        uint256 returnValue;\r\n        if(action==\"issuing\")\r\n            fees = rates.getFee(\"issuing\");\r\n        else if(action==\"redemption\")\r\n            fees = rates.getFee(\"redemption\");\r\n        if(fees > 0){\r\n            address feeTo = rates.getCustodian();\r\n            address cashContract;\r\n            if(factory.checkSupportForToken(currency))\r\n                cashContract = factory.getCurrencyToken(currency);\r\n            else \r\n                cashContract = factory.getTokenByNameType(currency, \"ViaCash\");\r\n            if(feeTo!=address(0x0)){\r\n                IERC20(cashContract).transfer(feeTo, FixedPoint.mulDown(fees, value));\r\n                returnValue = Math.sub(value, FixedPoint.mulDown(fees, value));\r\n                return returnValue;\r\n            }\r\n        }\r\n        return value;\r\n    }\r\n\r\n    //check AML status for account address\r\n    function amlCheck(address account) private view returns(bool){\r\n        address client = factory.getClient();\r\n        if(client==address(0x0))\r\n            return true;\r\n        if(VerifiedClient(client).getAMLStatus(account))\r\n            return true;\r\n        else\r\n            return false;\r\n    }\r\n    \r\n    function pause() onlyFactoryOwner(msg.sender, address(factory)) public {\r\n        _pause();\r\n    }\r\n    function unpause() onlyFactoryOwner(msg.sender, address(factory)) public {\r\n        _unpause();\r\n    }\r\n\r\n    modifier onlyFactoryOwner (address _sender, address _factory){\r\n        require(_sender == owner() || _sender == _factory);\r\n        _;\r\n    }\r\n\r\n    function _computeScalingFactor(IERC20 tkn) internal view returns (uint256) {\r\n\r\n        // Tokens that don't implement the `decimals` method are not supported.\r\n        uint256 tokenDecimals = ERC20(address(tkn)).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 1e18 * 10**decimalsDifference;\r\n    }\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}",
    "sourcePath": "D:\\Code\\verified-payments\\contracts\\Bond.sol",
    "ast": {
        "absolutePath": "project:/contracts/Bond.sol",
        "exportedSymbols": {
            "Bond": [
                3597
            ]
        },
        "id": 3598,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 1294,
                "literals": [
                    "solidity",
                    "0.5",
                    ".7"
                ],
                "nodeType": "PragmaDirective",
                "src": "116:22:14"
            },
            {
                "id": 1295,
                "literals": [
                    "experimental",
                    "ABIEncoderV2"
                ],
                "nodeType": "PragmaDirective",
                "src": "140:33:14"
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaCash.sol",
                "file": "./interfaces/ViaCash.sol",
                "id": 1296,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8213,
                "src": "177:34:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaBond.sol",
                "file": "./interfaces/ViaBond.sol",
                "id": 1297,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8170,
                "src": "213:34:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaToken.sol",
                "file": "./interfaces/ViaToken.sol",
                "id": 1298,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8500,
                "src": "249:35:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaOracle.sol",
                "file": "./interfaces/ViaOracle.sol",
                "id": 1299,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8428,
                "src": "286:36:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaFactory.sol",
                "file": "./interfaces/ViaFactory.sol",
                "id": 1300,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8403,
                "src": "324:37:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                "file": "./interfaces/VerifiedClient.sol",
                "id": 1301,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8023,
                "src": "363:41:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedRates.sol",
                "file": "./interfaces/VerifiedRates.sol",
                "id": 1302,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8062,
                "src": "406:40:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/math/Math.sol",
                "file": "./math/Math.sol",
                "id": 1303,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 10484,
                "src": "450:25:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/math/FixedPoint.sol",
                "file": "./math/FixedPoint.sol",
                "id": 1304,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 8910,
                "src": "477:31:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/math/LogExpMath.sol",
                "file": "./math/LogExpMath.sol",
                "id": 1305,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 10190,
                "src": "510:31:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/utilities/ERC20.sol",
                "file": "./utilities/ERC20.sol",
                "id": 1306,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 12539,
                "src": "545:31:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/utilities/Pausable.sol",
                "file": "./utilities/Pausable.sol",
                "id": 1307,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 12578,
                "src": "578:34:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/utilities/StringUtils.sol",
                "file": "./utilities/StringUtils.sol",
                "id": 1308,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 12993,
                "src": "614:37:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "id": 1309,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 479,
                "src": "655:60:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "id": 1310,
                "nodeType": "ImportDirective",
                "scope": 3598,
                "sourceUnit": 341,
                "src": "717:82:14",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 1311,
                            "name": "ViaBond",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8169,
                            "src": "820:7:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ViaBond_$8169",
                                "typeString": "contract ViaBond"
                            }
                        },
                        "id": 1312,
                        "nodeType": "InheritanceSpecifier",
                        "src": "820:7:14"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 1313,
                            "name": "Initializable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 478,
                            "src": "829:13:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Initializable_$478",
                                "typeString": "contract Initializable"
                            }
                        },
                        "id": 1314,
                        "nodeType": "InheritanceSpecifier",
                        "src": "829:13:14"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 1315,
                            "name": "ERC20",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12538,
                            "src": "844:5:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20_$12538",
                                "typeString": "contract ERC20"
                            }
                        },
                        "id": 1316,
                        "nodeType": "InheritanceSpecifier",
                        "src": "844:5:14"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 1317,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 340,
                            "src": "851:7:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$340",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 1318,
                        "nodeType": "InheritanceSpecifier",
                        "src": "851:7:14"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 1319,
                            "name": "Pausable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12577,
                            "src": "860:8:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Pausable_$12577",
                                "typeString": "contract Pausable"
                            }
                        },
                        "id": 1320,
                        "nodeType": "InheritanceSpecifier",
                        "src": "860:8:14"
                    }
                ],
                "contractDependencies": [
                    29,
                    340,
                    409,
                    478,
                    8169,
                    12538,
                    12577
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 3597,
                "linearizedBaseContracts": [
                    3597,
                    12577,
                    340,
                    12538,
                    409,
                    29,
                    478,
                    8169
                ],
                "name": "Bond",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 1322,
                        "libraryName": {
                            "contractScope": null,
                            "id": 1321,
                            "name": "stringutils",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12992,
                            "src": "884:11:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_stringutils_$12992",
                                "typeString": "library stringutils"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "878:24:14",
                        "typeName": null
                    },
                    {
                        "id": 1325,
                        "libraryName": {
                            "contractScope": null,
                            "id": 1323,
                            "name": "Math",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 10483,
                            "src": "914:4:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Math_$10483",
                                "typeString": "library Math"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "908:23:14",
                        "typeName": {
                            "id": 1324,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "923:7:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "id": 1328,
                        "libraryName": {
                            "contractScope": null,
                            "id": 1326,
                            "name": "FixedPoint",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8909,
                            "src": "943:10:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FixedPoint_$8909",
                                "typeString": "library FixedPoint"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "937:29:14",
                        "typeName": {
                            "id": 1327,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "958:7:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "id": 1331,
                        "libraryName": {
                            "contractScope": null,
                            "id": 1329,
                            "name": "LogExpMath",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 10189,
                            "src": "978:10:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_LogExpMath_$10189",
                                "typeString": "library LogExpMath"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "972:29:14",
                        "typeName": {
                            "id": 1330,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "993:7:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "constant": false,
                        "id": 1333,
                        "name": "factory",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1038:26:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                            "typeString": "contract ViaFactory"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 1332,
                            "name": "ViaFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8402,
                            "src": "1038:10:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                "typeString": "contract ViaFactory"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 1335,
                        "name": "rates",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1073:27:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                            "typeString": "contract VerifiedRates"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 1334,
                            "name": "VerifiedRates",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8061,
                            "src": "1073:13:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                "typeString": "contract VerifiedRates"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 1337,
                        "name": "oracle",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1123:24:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ViaOracle_$8427",
                            "typeString": "contract ViaOracle"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 1336,
                            "name": "ViaOracle",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8427,
                            "src": "1123:9:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                "typeString": "contract ViaOracle"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 1339,
                        "name": "bondCurrency",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1198:27:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                        },
                        "typeName": {
                            "id": 1338,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1198:7:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 1341,
                        "name": "bondName",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1270:23:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                        },
                        "typeName": {
                            "id": 1340,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1270:7:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 1343,
                        "name": "token",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1327:21:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 1342,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1327:7:14",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 1349,
                        "name": "issues",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1468:67:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond))"
                        },
                        "typeName": {
                            "id": 1348,
                            "keyType": {
                                "id": 1344,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1476:7:14",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1468:53:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond))"
                            },
                            "valueType": {
                                "id": 1347,
                                "keyType": {
                                    "id": 1345,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1496:7:14",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "1487:33:14",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                    "typeString": "mapping(address => struct ViaBond.bond)"
                                },
                                "valueType": {
                                    "contractScope": null,
                                    "id": 1346,
                                    "name": "ViaBond.bond",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 8078,
                                    "src": "1507:12:14",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                        "typeString": "struct ViaBond.bond"
                                    }
                                }
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 1355,
                        "name": "purchases",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1661:70:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond))"
                        },
                        "typeName": {
                            "id": 1354,
                            "keyType": {
                                "id": 1350,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1669:7:14",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1661:53:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond))"
                            },
                            "valueType": {
                                "id": 1353,
                                "keyType": {
                                    "id": 1351,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1689:7:14",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "1680:33:14",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                    "typeString": "mapping(address => struct ViaBond.bond)"
                                },
                                "valueType": {
                                    "contractScope": null,
                                    "id": 1352,
                                    "name": "ViaBond.bond",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 8078,
                                    "src": "1700:12:14",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                        "typeString": "struct ViaBond.bond"
                                    }
                                }
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 1358,
                        "name": "bondsIssued",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "1834:28:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 1356,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1834:7:14",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "id": 1357,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "1834:9:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 1374,
                        "name": "BondIssued",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 1373,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1360,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1374,
                                    "src": "1943:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1359,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1943:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1362,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1374,
                                    "src": "1966:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1361,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1966:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1364,
                                    "indexed": false,
                                    "name": "bondName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1374,
                                    "src": "1981:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1363,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1981:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1366,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1374,
                                    "src": "1999:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1365,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1999:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1368,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1374,
                                    "src": "2015:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1367,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2015:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1370,
                                    "indexed": false,
                                    "name": "collateralAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1374,
                                    "src": "2033:24:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1369,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2033:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1372,
                                    "indexed": false,
                                    "name": "issueTime",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1374,
                                    "src": "2059:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1371,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2059:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1942:135:14"
                        },
                        "src": "1926:152:14"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 1388,
                        "name": "BondRedeemed",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 1387,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1376,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1388,
                                    "src": "2103:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1375,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2103:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1378,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1388,
                                    "src": "2126:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1377,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2126:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1380,
                                    "indexed": false,
                                    "name": "tokenAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1388,
                                    "src": "2141:19:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1379,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2141:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1382,
                                    "indexed": false,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1388,
                                    "src": "2162:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1381,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2162:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1384,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1388,
                                    "src": "2181:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1383,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2181:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1386,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1388,
                                    "src": "2197:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1385,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2197:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2102:112:14"
                        },
                        "src": "2084:131:14"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 1404,
                        "name": "BondPurchased",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 1403,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1390,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1404,
                                    "src": "2241:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1389,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2241:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1392,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1404,
                                    "src": "2264:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1391,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2264:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1394,
                                    "indexed": false,
                                    "name": "bondName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1404,
                                    "src": "2279:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1393,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2279:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1396,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1404,
                                    "src": "2297:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1395,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2297:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1398,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1404,
                                    "src": "2313:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1397,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2313:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1400,
                                    "indexed": false,
                                    "name": "paidInAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1404,
                                    "src": "2331:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1399,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2331:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1402,
                                    "indexed": false,
                                    "name": "purchaseTime",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1404,
                                    "src": "2353:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1401,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2353:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2240:134:14"
                        },
                        "src": "2221:154:14"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 1418,
                        "name": "BondLiquidated",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 1417,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1406,
                                    "indexed": true,
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1418,
                                    "src": "2402:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1405,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2402:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1408,
                                    "indexed": false,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1418,
                                    "src": "2425:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1407,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2425:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1410,
                                    "indexed": false,
                                    "name": "tokenAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1418,
                                    "src": "2440:19:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1409,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2440:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1412,
                                    "indexed": false,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1418,
                                    "src": "2461:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1411,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2461:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1414,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1418,
                                    "src": "2480:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1413,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2480:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1416,
                                    "indexed": false,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1418,
                                    "src": "2496:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1415,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2496:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2401:112:14"
                        },
                        "src": "2381:133:14"
                    },
                    {
                        "constant": false,
                        "id": 1422,
                        "name": "lock",
                        "nodeType": "VariableDeclaration",
                        "scope": 3597,
                        "src": "2535:37:14",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                            "typeString": "mapping(bytes32 => bool)"
                        },
                        "typeName": {
                            "id": 1421,
                            "keyType": {
                                "id": 1419,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2543:7:14",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "2535:24:14",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                "typeString": "mapping(bytes32 => bool)"
                            },
                            "valueType": {
                                "id": 1420,
                                "name": "bool",
                                "nodeType": "ElementaryTypeName",
                                "src": "2554:4:14",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 1485,
                            "nodeType": "Block",
                            "src": "2743:346:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1442,
                                                "name": "_owner",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1428,
                                                "src": "2773:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1439,
                                                "name": "Ownable",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 340,
                                                "src": "2754:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Ownable_$340_$",
                                                    "typeString": "type(contract Ownable)"
                                                }
                                            },
                                            "id": 1441,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "initialize",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 251,
                                            "src": "2754:18:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 1443,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2754:26:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1444,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2754:26:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1450,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1445,
                                            "name": "factory",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1333,
                                            "src": "2791:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                "typeString": "contract ViaFactory"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1447,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "2812:3:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 1448,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "2812:10:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                ],
                                                "id": 1446,
                                                "name": "ViaFactory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8402,
                                                "src": "2801:10:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ViaFactory_$8402_$",
                                                    "typeString": "type(contract ViaFactory)"
                                                }
                                            },
                                            "id": 1449,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2801:22:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                "typeString": "contract ViaFactory"
                                            }
                                        },
                                        "src": "2791:32:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                            "typeString": "contract ViaFactory"
                                        }
                                    },
                                    "id": 1451,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2791:32:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1456,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1452,
                                            "name": "oracle",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1337,
                                            "src": "2834:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                "typeString": "contract ViaOracle"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1454,
                                                    "name": "_oracle",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1430,
                                                    "src": "2853:7:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 1453,
                                                "name": "ViaOracle",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8427,
                                                "src": "2843:9:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ViaOracle_$8427_$",
                                                    "typeString": "type(contract ViaOracle)"
                                                }
                                            },
                                            "id": 1455,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2843:18:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                "typeString": "contract ViaOracle"
                                            }
                                        },
                                        "src": "2834:27:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                            "typeString": "contract ViaOracle"
                                        }
                                    },
                                    "id": 1457,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2834:27:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1462,
                                                                "name": "_name",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1424,
                                                                "src": "2904:5:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1460,
                                                                "name": "abi",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12994,
                                                                "src": "2887:3:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_abi",
                                                                    "typeString": "abi"
                                                                }
                                                            },
                                                            "id": 1461,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "memberName": "encodePacked",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": null,
                                                            "src": "2887:16:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                                "typeString": "function () pure returns (bytes memory)"
                                                            }
                                                        },
                                                        "id": 1463,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2887:23:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    ],
                                                    "id": 1459,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "2880:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                                        "typeString": "type(string storage pointer)"
                                                    },
                                                    "typeName": "string"
                                                },
                                                "id": 1464,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2880:31:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "id": 1458,
                                            "name": "setName",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12127,
                                            "src": "2872:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (string memory)"
                                            }
                                        },
                                        "id": 1465,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2872:40:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1466,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2872:40:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1469,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1467,
                                            "name": "bondName",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1341,
                                            "src": "2967:8:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 1468,
                                            "name": "_name",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1424,
                                            "src": "2978:5:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "2967:16:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "id": 1470,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2967:16:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1473,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1471,
                                            "name": "bondCurrency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1339,
                                            "src": "2994:12:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 1472,
                                            "name": "_currency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1426,
                                            "src": "3009:9:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "2994:24:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "id": 1474,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2994:24:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1477,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1475,
                                            "name": "token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1343,
                                            "src": "3029:5:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 1476,
                                            "name": "_token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1432,
                                            "src": "3037:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "3029:14:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 1478,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3029:14:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1483,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1479,
                                            "name": "rates",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1335,
                                            "src": "3054:5:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                "typeString": "contract VerifiedRates"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1481,
                                                    "name": "_fee",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1434,
                                                    "src": "3076:4:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 1480,
                                                "name": "VerifiedRates",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8061,
                                                "src": "3062:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_VerifiedRates_$8061_$",
                                                    "typeString": "type(contract VerifiedRates)"
                                                }
                                            },
                                            "id": 1482,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3062:19:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                "typeString": "contract VerifiedRates"
                                            }
                                        },
                                        "src": "3054:27:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                            "typeString": "contract VerifiedRates"
                                        }
                                    },
                                    "id": 1484,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3054:27:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 1486,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 1437,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 1436,
                                    "name": "initializer",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 453,
                                    "src": "2731:11:14",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "2731:11:14"
                            }
                        ],
                        "name": "initialize",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1435,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1424,
                                    "name": "_name",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1486,
                                    "src": "2627:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1423,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2627:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1426,
                                    "name": "_currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1486,
                                    "src": "2642:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1425,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2642:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1428,
                                    "name": "_owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1486,
                                    "src": "2661:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1427,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2661:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1430,
                                    "name": "_oracle",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1486,
                                    "src": "2677:15:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1429,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2677:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1432,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1486,
                                    "src": "2694:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1431,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2694:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1434,
                                    "name": "_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1486,
                                    "src": "2710:12:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1433,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2710:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2626:97:14"
                        },
                        "returnParameters": {
                            "id": 1438,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2743:0:14"
                        },
                        "scope": 3597,
                        "src": "2607:482:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 1535,
                            "nodeType": "Block",
                            "src": "3212:511:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 1502,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 1500,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12542,
                                                    "src": "3271:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 1501,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "3281:5:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "3271:15:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 1499,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "3263:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 1503,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3263:24:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1504,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3263:24:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 1508,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 1506,
                                                    "name": "bondCurrency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1339,
                                                    "src": "3401:12:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 1507,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1492,
                                                    "src": "3415:8:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "src": "3401:22:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 1505,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "3393:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 1509,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3393:31:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1510,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3393:31:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 1523,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 1518,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 1514,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "3549:3:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 1515,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "3549:10:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1512,
                                                                "name": "factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1333,
                                                                "src": "3533:7:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 1513,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "3533:15:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 1516,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "3533:27:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "56696143617368",
                                                        "id": 1517,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "3564:9:14",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                            "typeString": "literal_string \"ViaCash\""
                                                        },
                                                        "value": "ViaCash"
                                                    },
                                                    "src": "3533:40:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 1521,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1492,
                                                            "src": "3606:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 1519,
                                                            "name": "factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1333,
                                                            "src": "3577:7:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 1520,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "checkSupportForToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8394,
                                                        "src": "3577:28:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                            "typeString": "function (bytes32) view external returns (bool)"
                                                        }
                                                    },
                                                    "id": 1522,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3577:38:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "3533:82:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "556e737570706f7274656420636f6c6c61746572616c20666f72206973737565",
                                                "id": 1524,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3617:34:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_644b1732b33d16c023028e38764f484db2b866f9a95a2fbc5e349c506f3f5cc8",
                                                    "typeString": "literal_string \"Unsupported collateral for issue\""
                                                },
                                                "value": "Unsupported collateral for issue"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_644b1732b33d16c023028e38764f484db2b866f9a95a2fbc5e349c506f3f5cc8",
                                                    "typeString": "literal_string \"Unsupported collateral for issue\""
                                                }
                                            ],
                                            "id": 1511,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "3525:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 1525,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3525:127:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1526,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3525:127:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1528,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1488,
                                                        "src": "3676:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1529,
                                                        "name": "payer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1490,
                                                        "src": "3684:5:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1530,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1492,
                                                        "src": "3691:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1531,
                                                        "name": "cashContract",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1494,
                                                        "src": "3701:12:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 1527,
                                                    "name": "issue",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1662,
                                                    "src": "3670:5:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_address_$returns$_t_bool_$",
                                                        "typeString": "function (uint256,address,bytes32,address) returns (bool)"
                                                    }
                                                },
                                                "id": 1532,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "3670:44:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "id": 1533,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "3669:46:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "functionReturnParameters": 1498,
                                    "id": 1534,
                                    "nodeType": "Return",
                                    "src": "3663:52:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 1536,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "requestIssue",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1495,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1488,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1536,
                                    "src": "3119:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1487,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3119:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1490,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1536,
                                    "src": "3135:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1489,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3135:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1492,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1536,
                                    "src": "3150:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1491,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3150:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1494,
                                    "name": "cashContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1536,
                                    "src": "3168:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1493,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3168:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3118:71:14"
                        },
                        "returnParameters": {
                            "id": 1498,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1497,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1536,
                                    "src": "3207:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 1496,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3207:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3206:6:14"
                        },
                        "scope": 3597,
                        "src": "3097:626:14",
                        "stateMutability": "nonpayable",
                        "superFunction": 8104,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 1661,
                            "nodeType": "Block",
                            "src": "3936:1616:14",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 1554,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1551,
                                                    "name": "cashContract",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1544,
                                                    "src": "4049:12:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 1549,
                                                    "name": "factory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1333,
                                                    "src": "4033:7:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                        "typeString": "contract ViaFactory"
                                                    }
                                                },
                                                "id": 1550,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getType",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8240,
                                                "src": "4033:15:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                    "typeString": "function (address) view external returns (bytes32)"
                                                }
                                            },
                                            "id": 1552,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4033:29:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "56696143617368",
                                            "id": 1553,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4064:9:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                "typeString": "literal_string \"ViaCash\""
                                            },
                                            "value": "ViaCash"
                                        },
                                        "src": "4033:40:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "id": 1573,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1570,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1542,
                                                        "src": "4255:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1568,
                                                        "name": "factory",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1333,
                                                        "src": "4226:7:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                            "typeString": "contract ViaFactory"
                                                        }
                                                    },
                                                    "id": 1569,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "checkSupportForToken",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8394,
                                                    "src": "4226:28:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32) view external returns (bool)"
                                                    }
                                                },
                                                "id": 1571,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4226:38:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "74727565",
                                                "id": 1572,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "bool",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4266:4:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "value": "true"
                                            },
                                            "src": "4226:44:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": null,
                                        "id": 1601,
                                        "nodeType": "IfStatement",
                                        "src": "4223:349:14",
                                        "trueBody": {
                                            "id": 1600,
                                            "nodeType": "Block",
                                            "src": "4271:301:14",
                                            "statements": [
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1578,
                                                                "name": "payer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1540,
                                                                "src": "4394:5:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1580,
                                                                        "name": "this",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 13075,
                                                                        "src": "4409:4:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_Bond_$3597",
                                                                            "typeString": "contract Bond"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_Bond_$3597",
                                                                            "typeString": "contract Bond"
                                                                        }
                                                                    ],
                                                                    "id": 1579,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                    "src": "4401:7:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                        "typeString": "type(address)"
                                                                    },
                                                                    "typeName": "address"
                                                                },
                                                                "id": 1581,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4401:13:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1582,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1538,
                                                                "src": "4416:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1575,
                                                                        "name": "cashContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1544,
                                                                        "src": "4367:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 1574,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 409,
                                                                    "src": "4360:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 1576,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4360:20:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            },
                                                            "id": 1577,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "transferFrom",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 392,
                                                            "src": "4360:33:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 1583,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4360:63:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 1584,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "4360:63:14"
                                                },
                                                {
                                                    "assignments": [
                                                        1586
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 1586,
                                                            "name": "scalingFactor",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 1600,
                                                            "src": "4438:21:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "typeName": {
                                                                "id": 1585,
                                                                "name": "uint256",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "4438:7:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 1592,
                                                    "initialValue": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1589,
                                                                        "name": "cashContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1544,
                                                                        "src": "4491:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 1588,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 409,
                                                                    "src": "4484:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 1590,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4484:20:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 1587,
                                                            "name": "_computeScalingFactor",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3580,
                                                            "src": "4462:21:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$409_$returns$_t_uint256_$",
                                                                "typeString": "function (contract IERC20) view returns (uint256)"
                                                            }
                                                        },
                                                        "id": 1591,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4462:43:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "4438:67:14"
                                                },
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1598,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "id": 1593,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1538,
                                                            "src": "4520:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 1595,
                                                                    "name": "amount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1538,
                                                                    "src": "4538:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 1596,
                                                                    "name": "scalingFactor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1586,
                                                                    "src": "4546:13:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "id": 1594,
                                                                "name": "_upscale",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3596,
                                                                "src": "4529:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                }
                                                            },
                                                            "id": 1597,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "4529:31:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "4520:40:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "id": 1599,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "4520:40:14"
                                                }
                                            ]
                                        }
                                    },
                                    "id": 1602,
                                    "nodeType": "IfStatement",
                                    "src": "4030:542:14",
                                    "trueBody": {
                                        "id": 1567,
                                        "nodeType": "Block",
                                        "src": "4074:134:14",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "id": 1562,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "UnaryOperation",
                                                    "operator": "!",
                                                    "prefix": true,
                                                    "src": "4092:57:14",
                                                    "subExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1559,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1538,
                                                                "src": "4135:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1560,
                                                                "name": "payer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1540,
                                                                "src": "4143:5:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1556,
                                                                        "name": "cashContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1544,
                                                                        "src": "4101:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 1555,
                                                                    "name": "ViaCash",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8212,
                                                                    "src": "4093:7:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_ViaCash_$8212_$",
                                                                        "typeString": "type(contract ViaCash)"
                                                                    }
                                                                },
                                                                "id": 1557,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4093:21:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaCash_$8212",
                                                                    "typeString": "contract ViaCash"
                                                                }
                                                            },
                                                            "id": 1558,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "requestAddToBalance",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8180,
                                                            "src": "4093:41:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                                "typeString": "function (uint256,address) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 1561,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4093:56:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 1566,
                                                "nodeType": "IfStatement",
                                                "src": "4089:108:14",
                                                "trueBody": {
                                                    "id": 1565,
                                                    "nodeType": "Block",
                                                    "src": "4150:47:14",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "66616c7365",
                                                                "id": 1563,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "bool",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "4176:5:14",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                "value": "false"
                                                            },
                                                            "functionReturnParameters": 1548,
                                                            "id": 1564,
                                                            "nodeType": "Return",
                                                            "src": "4169:12:14"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                },
                                {
                                    "assignments": [
                                        1604
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1604,
                                            "name": "parValue",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 1661,
                                            "src": "4628:16:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 1603,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "4628:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1605,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "4628:16:14"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 1614,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1608,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1542,
                                                    "src": "4685:8:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "56696143617368",
                                                    "id": 1609,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "4695:9:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                        "typeString": "literal_string \"ViaCash\""
                                                    },
                                                    "value": "ViaCash"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                        "typeString": "literal_string \"ViaCash\""
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 1606,
                                                    "name": "factory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1333,
                                                    "src": "4658:7:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                        "typeString": "contract ViaFactory"
                                                    }
                                                },
                                                "id": 1607,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getTokenByNameType",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8276,
                                                "src": "4658:26:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                    "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                }
                                            },
                                            "id": 1610,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4658:47:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "307830",
                                                    "id": 1612,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "4715:3:14",
                                                    "subdenomination": null,
                                                    "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": 1611,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "4707:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 1613,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4707:12:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "4658:61:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 1643,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                                "argumentTypes": null,
                                                "id": 1628,
                                                "name": "parValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1604,
                                                "src": "5245:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1633,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1542,
                                                                "src": "5290:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "32",
                                                                        "id": 1636,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "number",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "5330:1:14",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_rational_2_by_1",
                                                                            "typeString": "int_const 2"
                                                                        },
                                                                        "value": "2"
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "35",
                                                                        "id": 1637,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "number",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "5332:1:14",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_rational_5_by_1",
                                                                            "typeString": "int_const 5"
                                                                        },
                                                                        "value": "5"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_2_by_1",
                                                                            "typeString": "int_const 2"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_rational_5_by_1",
                                                                            "typeString": "int_const 5"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 1634,
                                                                        "name": "bondCurrency",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1339,
                                                                        "src": "5300:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "id": 1635,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "substringinbytes",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 12782,
                                                                    "src": "5300:29:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_delegatecall_pure$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes32_$",
                                                                        "typeString": "function (bytes32,uint256,uint256) pure returns (bytes32)"
                                                                    }
                                                                },
                                                                "id": 1638,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "5300:34:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "6572",
                                                                "id": 1639,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "5336:4:14",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                                    "typeString": "literal_string \"er\""
                                                                },
                                                                "value": "er"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                                    "typeString": "literal_string \"er\""
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1631,
                                                                "name": "oracle",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1337,
                                                                "src": "5275:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                                    "typeString": "contract ViaOracle"
                                                                }
                                                            },
                                                            "id": 1632,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "request",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8415,
                                                            "src": "5275:14:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                "typeString": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                            }
                                                        },
                                                        "id": 1640,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5275:66:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1641,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1538,
                                                        "src": "5343:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1629,
                                                        "name": "FixedPoint",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8909,
                                                        "src": "5256:10:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                            "typeString": "type(library FixedPoint)"
                                                        }
                                                    },
                                                    "id": 1630,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "mulDown",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8604,
                                                    "src": "5256:18:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 1642,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5256:94:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "5245:105:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 1644,
                                        "nodeType": "ExpressionStatement",
                                        "src": "5245:105:14"
                                    },
                                    "id": 1645,
                                    "nodeType": "IfStatement",
                                    "src": "4655:695:14",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 1626,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                                "argumentTypes": null,
                                                "id": 1615,
                                                "name": "parValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1604,
                                                "src": "4972:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1620,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1542,
                                                                "src": "5017:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1621,
                                                                "name": "bondCurrency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1339,
                                                                "src": "5027:12:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "766572",
                                                                "id": 1622,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "5041:5:14",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_2a30ae68ef41453c4785709d2ce90b5b4f47543810125db1fedbf78bdfa6a766",
                                                                    "typeString": "literal_string \"ver\""
                                                                },
                                                                "value": "ver"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_2a30ae68ef41453c4785709d2ce90b5b4f47543810125db1fedbf78bdfa6a766",
                                                                    "typeString": "literal_string \"ver\""
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1618,
                                                                "name": "oracle",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1337,
                                                                "src": "5002:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                                    "typeString": "contract ViaOracle"
                                                                }
                                                            },
                                                            "id": 1619,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "request",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8415,
                                                            "src": "5002:14:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                "typeString": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                            }
                                                        },
                                                        "id": 1623,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5002:45:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1624,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1538,
                                                        "src": "5049:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1616,
                                                        "name": "FixedPoint",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8909,
                                                        "src": "4983:10:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                            "typeString": "type(library FixedPoint)"
                                                        }
                                                    },
                                                    "id": 1617,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "mulDown",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8604,
                                                    "src": "4983:18:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 1625,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4983:73:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "4972:84:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 1627,
                                        "nodeType": "ExpressionStatement",
                                        "src": "4972:84:14"
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1652,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1646,
                                            "name": "parValue",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1604,
                                            "src": "5388:8:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1648,
                                                    "name": "parValue",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1604,
                                                    "src": "5406:8:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1649,
                                                    "name": "bondCurrency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1339,
                                                    "src": "5416:12:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "69737375696e67",
                                                    "id": 1650,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5430:9:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_fe2717aad5755f7dec032c6177c0d8d1b95a78ce0f26cacb98283972ec0e168a",
                                                        "typeString": "literal_string \"issuing\""
                                                    },
                                                    "value": "issuing"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_stringliteral_fe2717aad5755f7dec032c6177c0d8d1b95a78ce0f26cacb98283972ec0e168a",
                                                        "typeString": "literal_string \"issuing\""
                                                    }
                                                ],
                                                "id": 1647,
                                                "name": "payFee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3468,
                                                "src": "5399:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,bytes32,bytes32) returns (uint256)"
                                                }
                                            },
                                            "id": 1651,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5399:41:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "5388:52:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 1653,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5388:52:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1655,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1540,
                                                "src": "5510:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1656,
                                                "name": "parValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1604,
                                                "src": "5517:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1657,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1538,
                                                "src": "5527:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1658,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1542,
                                                "src": "5535:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "id": 1654,
                                            "name": "finallyIssue",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1738,
                                            "src": "5497:12:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$",
                                                "typeString": "function (address,uint256,uint256,bytes32)"
                                            }
                                        },
                                        "id": 1659,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5497:47:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1660,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5497:47:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 1662,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "issue",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1545,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1538,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1662,
                                    "src": "3844:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1537,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3844:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1540,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1662,
                                    "src": "3860:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1539,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3860:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1542,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1662,
                                    "src": "3875:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1541,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3875:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1544,
                                    "name": "cashContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1662,
                                    "src": "3893:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1543,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3893:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3843:71:14"
                        },
                        "returnParameters": {
                            "id": 1548,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1547,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1662,
                                    "src": "3931:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 1546,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3931:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3930:6:14"
                        },
                        "scope": 3597,
                        "src": "3829:1723:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 1737,
                            "nodeType": "Block",
                            "src": "5748:703:14",
                            "statements": [
                                {
                                    "assignments": [
                                        1674
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1674,
                                            "name": "issueTime",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 1737,
                                            "src": "5759:17:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 1673,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5759:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1676,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "id": 1675,
                                        "name": "now",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13009,
                                        "src": "5779:3:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5759:23:14"
                                },
                                {
                                    "assignments": [
                                        1678
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1678,
                                            "name": "issuedBond",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 1737,
                                            "src": "5873:18:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 1677,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5873:7:14",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1692,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1681,
                                                "name": "token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1343,
                                                "src": "5914:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1682,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1664,
                                                "src": "5921:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1683,
                                                "name": "bondName",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1341,
                                                "src": "5928:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1687,
                                                                "name": "payer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1664,
                                                                "src": "5965:5:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1688,
                                                                "name": "issueTime",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1674,
                                                                "src": "5971:9:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1685,
                                                                "name": "abi",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12994,
                                                                "src": "5948:3:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_abi",
                                                                    "typeString": "abi"
                                                                }
                                                            },
                                                            "id": 1686,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "memberName": "encodePacked",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": null,
                                                            "src": "5948:16:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                                "typeString": "function () pure returns (bytes memory)"
                                                            }
                                                        },
                                                        "id": 1689,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5948:33:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    ],
                                                    "id": 1684,
                                                    "name": "keccak256",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13001,
                                                    "src": "5938:9:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                                        "typeString": "function (bytes memory) pure returns (bytes32)"
                                                    }
                                                },
                                                "id": 1690,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5938:44:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1679,
                                                "name": "factory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1333,
                                                "src": "5894:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                    "typeString": "contract ViaFactory"
                                                }
                                            },
                                            "id": 1680,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "createToken",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8327,
                                            "src": "5894:19:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                "typeString": "function (address,address,bytes32,bytes32) external returns (address)"
                                            }
                                        },
                                        "id": 1691,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5894:89:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5873:110:14"
                                },
                                {
                                    "assignments": [
                                        1694
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1694,
                                            "name": "vt",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 1737,
                                            "src": "6027:11:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                "typeString": "contract ViaToken"
                                            },
                                            "typeName": {
                                                "contractScope": null,
                                                "id": 1693,
                                                "name": "ViaToken",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 8499,
                                                "src": "6027:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                    "typeString": "contract ViaToken"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1698,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1696,
                                                "name": "issuedBond",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1678,
                                                "src": "6050:10:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 1695,
                                            "name": "ViaToken",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8499,
                                            "src": "6041:8:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                "typeString": "type(contract ViaToken)"
                                            }
                                        },
                                        "id": 1697,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6041:20:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ViaToken_$8499",
                                            "typeString": "contract ViaToken"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "6027:34:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1702,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1664,
                                                "src": "6086:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1703,
                                                "name": "parValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1666,
                                                "src": "6093:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1699,
                                                "name": "vt",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1694,
                                                "src": "6072:2:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                    "typeString": "contract ViaToken"
                                                }
                                            },
                                            "id": 1701,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "addBalance",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8471,
                                            "src": "6072:13:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256) external"
                                            }
                                        },
                                        "id": 1704,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6072:30:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1705,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6072:30:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1709,
                                                "name": "parValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1666,
                                                "src": "6131:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1706,
                                                "name": "vt",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1694,
                                                "src": "6113:2:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                    "typeString": "contract ViaToken"
                                                }
                                            },
                                            "id": 1708,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "addTotalSupply",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8476,
                                            "src": "6113:17:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                                "typeString": "function (uint256) external"
                                            }
                                        },
                                        "id": 1710,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6113:27:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1711,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6113:27:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1715,
                                                "name": "issuedBond",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1678,
                                                "src": "6208:10:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1712,
                                                "name": "bondsIssued",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1358,
                                                "src": "6191:11:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 1714,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "6191:16:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) returns (uint256)"
                                            }
                                        },
                                        "id": 1716,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6191:28:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 1717,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6191:28:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1719,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1664,
                                                "src": "6246:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1720,
                                                "name": "parValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1666,
                                                "src": "6253:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1721,
                                                "name": "paidInAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1668,
                                                "src": "6263:12:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1722,
                                                "name": "paidCurrency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1670,
                                                "src": "6277:12:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1723,
                                                "name": "issueTime",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1674,
                                                "src": "6291:9:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1724,
                                                "name": "issuedBond",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1678,
                                                "src": "6302:10:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 1718,
                                            "name": "storeIssuedBond",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1794,
                                            "src": "6230:15:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_address_$returns$__$",
                                                "typeString": "function (address,uint256,uint256,bytes32,uint256,address)"
                                            }
                                        },
                                        "id": 1725,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6230:83:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1726,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6230:83:14"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1728,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1664,
                                                "src": "6366:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1729,
                                                "name": "issuedBond",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1678,
                                                "src": "6373:10:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1730,
                                                "name": "bondName",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1341,
                                                "src": "6385:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1731,
                                                "name": "parValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1666,
                                                "src": "6395:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1732,
                                                "name": "paidCurrency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1670,
                                                "src": "6405:12:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1733,
                                                "name": "paidInAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1668,
                                                "src": "6419:12:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 1734,
                                                "name": "issueTime",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1674,
                                                "src": "6433:9:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 1727,
                                            "name": "BondIssued",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1374,
                                            "src": "6355:10:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,bytes32,uint256,bytes32,uint256,uint256)"
                                            }
                                        },
                                        "id": 1735,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6355:88:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1736,
                                    "nodeType": "EmitStatement",
                                    "src": "6350:93:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 1738,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "finallyIssue",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1671,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1664,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1738,
                                    "src": "5663:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1663,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5663:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1666,
                                    "name": "parValue",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1738,
                                    "src": "5678:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1665,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5678:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1668,
                                    "name": "paidInAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1738,
                                    "src": "5696:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1667,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5696:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1670,
                                    "name": "paidCurrency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1738,
                                    "src": "5718:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1669,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5718:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5662:77:14"
                        },
                        "returnParameters": {
                            "id": 1672,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5748:0:14"
                        },
                        "scope": 3597,
                        "src": "5641:810:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 1793,
                            "nodeType": "Block",
                            "src": "6651:271:14",
                            "statements": [
                                {
                                    "assignments": [
                                        1754
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1754,
                                            "name": "b",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 1793,
                                            "src": "6662:14:14",
                                            "stateVariable": false,
                                            "storageLocation": "storage",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                "typeString": "struct ViaBond.bond"
                                            },
                                            "typeName": {
                                                "contractScope": null,
                                                "id": 1753,
                                                "name": "bond",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 8078,
                                                "src": "6662:4:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1760,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 1755,
                                                "name": "issues",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1349,
                                                "src": "6679:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                }
                                            },
                                            "id": 1757,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 1756,
                                                "name": "_party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1740,
                                                "src": "6686:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "6679:14:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                            }
                                        },
                                        "id": 1759,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 1758,
                                            "name": "_issuedBond",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1750,
                                            "src": "6694:11:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "6679:27:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                            "typeString": "struct ViaBond.bond storage ref"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "6662:44:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1766,
                                                "name": "_party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1740,
                                                "src": "6739:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 1761,
                                                    "name": "b",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1754,
                                                    "src": "6717:1:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                        "typeString": "struct ViaBond.bond storage pointer"
                                                    }
                                                },
                                                "id": 1764,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "counterParties",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8077,
                                                "src": "6717:16:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 1765,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "6717:21:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) returns (uint256)"
                                            }
                                        },
                                        "id": 1767,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6717:29:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 1768,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6717:29:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1773,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1769,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1754,
                                                "src": "6757:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 1771,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "parValue",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8066,
                                            "src": "6757:10:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 1772,
                                            "name": "_parValue",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1742,
                                            "src": "6770:9:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "6757:22:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 1774,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6757:22:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1779,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1775,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1754,
                                                "src": "6790:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 1777,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "paidInAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8068,
                                            "src": "6790:14:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 1778,
                                            "name": "_paidInAmount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1744,
                                            "src": "6807:13:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "6790:30:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 1780,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6790:30:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1785,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1781,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1754,
                                                "src": "6831:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 1783,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "paidInCurrency",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8070,
                                            "src": "6831:16:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 1784,
                                            "name": "_paidInCurrency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1746,
                                            "src": "6850:15:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "6831:34:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "id": 1786,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6831:34:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1791,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1787,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1754,
                                                "src": "6876:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 1789,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "timeIssuedOrSubscribed",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8072,
                                            "src": "6876:24:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 1790,
                                            "name": "_timeIssued",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1748,
                                            "src": "6903:11:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "6876:38:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 1792,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6876:38:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 1794,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "storeIssuedBond",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1751,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1740,
                                    "name": "_party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1794,
                                    "src": "6518:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1739,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6518:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1742,
                                    "name": "_parValue",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1794,
                                    "src": "6534:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1741,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6534:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1744,
                                    "name": "_paidInAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1794,
                                    "src": "6553:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1743,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6553:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1746,
                                    "name": "_paidInCurrency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1794,
                                    "src": "6576:23:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1745,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6576:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1748,
                                    "name": "_timeIssued",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1794,
                                    "src": "6601:19:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1747,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6601:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1750,
                                    "name": "_issuedBond",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1794,
                                    "src": "6622:19:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1749,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6622:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6517:125:14"
                        },
                        "returnParameters": {
                            "id": 1752,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "6651:0:14"
                        },
                        "scope": 3597,
                        "src": "6493:429:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 1855,
                            "nodeType": "Block",
                            "src": "7048:563:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 1810,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 1808,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12542,
                                                    "src": "7107:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 1809,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7117:5:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "7107:15:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 1807,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "7099:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 1811,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7099:24:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1812,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7099:24:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 1816,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 1814,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1796,
                                                    "src": "7192:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 1815,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7202:1:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "7192:11:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "507572636861736520616d6f756e74206973207a65726f",
                                                "id": 1817,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7205:25:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_27e375f6d8c4773981e1953f82b3241ce955cf08fa574f626d46c8baea8d0bdb",
                                                    "typeString": "literal_string \"Purchase amount is zero\""
                                                },
                                                "value": "Purchase amount is zero"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_27e375f6d8c4773981e1953f82b3241ce955cf08fa574f626d46c8baea8d0bdb",
                                                    "typeString": "literal_string \"Purchase amount is zero\""
                                                }
                                            ],
                                            "id": 1813,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "7184:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 1818,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7184:47:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1819,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7184:47:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 1827,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1823,
                                                                "name": "msg",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 13007,
                                                                "src": "7356:3:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_message",
                                                                    "typeString": "msg"
                                                                }
                                                            },
                                                            "id": 1824,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "sender",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": null,
                                                            "src": "7356:10:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 1821,
                                                            "name": "factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1333,
                                                            "src": "7340:7:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 1822,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getType",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8240,
                                                        "src": "7340:15:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                            "typeString": "function (address) view external returns (bytes32)"
                                                        }
                                                    },
                                                    "id": 1825,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "7340:27:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "566961426f6e64546f6b656e",
                                                    "id": 1826,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7371:14:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_4c19ae4ab2cb4ec4ecfdd0e1418f065638103e1c91c3461c18dc6cee3fc03c59",
                                                        "typeString": "literal_string \"ViaBondToken\""
                                                    },
                                                    "value": "ViaBondToken"
                                                },
                                                "src": "7340:45:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 1820,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "7332:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 1828,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7332:54:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1829,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7332:54:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 1841,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 1836,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1833,
                                                                "name": "cashContract",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1802,
                                                                "src": "7421:12:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1831,
                                                                "name": "factory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1333,
                                                                "src": "7405:7:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                    "typeString": "contract ViaFactory"
                                                                }
                                                            },
                                                            "id": 1832,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getType",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8240,
                                                            "src": "7405:15:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                                "typeString": "function (address) view external returns (bytes32)"
                                                            }
                                                        },
                                                        "id": 1834,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "7405:29:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "56696143617368",
                                                        "id": 1835,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "7436:9:14",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                            "typeString": "literal_string \"ViaCash\""
                                                        },
                                                        "value": "ViaCash"
                                                    },
                                                    "src": "7405:40:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 1839,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1800,
                                                            "src": "7478:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 1837,
                                                            "name": "factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1333,
                                                            "src": "7449:7:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 1838,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "checkSupportForToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8394,
                                                        "src": "7449:28:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                            "typeString": "function (bytes32) view external returns (bool)"
                                                        }
                                                    },
                                                    "id": 1840,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "7449:38:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "7405:82:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "5075726368617365206e6f74207769746820737570706f7274656420746f6b656e",
                                                "id": 1842,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7489:35:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_9f2f40c7df69c90ff7b0f7adb3ddeb15b3af2ae229a7bd1432daa8ebe7ba664c",
                                                    "typeString": "literal_string \"Purchase not with supported token\""
                                                },
                                                "value": "Purchase not with supported token"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_9f2f40c7df69c90ff7b0f7adb3ddeb15b3af2ae229a7bd1432daa8ebe7ba664c",
                                                    "typeString": "literal_string \"Purchase not with supported token\""
                                                }
                                            ],
                                            "id": 1830,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "7397:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 1843,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7397:128:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 1844,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7397:128:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1846,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1796,
                                                        "src": "7552:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1847,
                                                        "name": "payer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1798,
                                                        "src": "7560:5:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1848,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1800,
                                                        "src": "7567:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1849,
                                                        "name": "cashContract",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1802,
                                                        "src": "7577:12:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 1850,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 13007,
                                                            "src": "7591:3:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 1851,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sender",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "7591:10:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    ],
                                                    "id": 1845,
                                                    "name": "purchase",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2080,
                                                    "src": "7543:8:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bool_$",
                                                        "typeString": "function (uint256,address,bytes32,address,address) returns (bool)"
                                                    }
                                                },
                                                "id": 1852,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7543:59:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "id": 1853,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "7542:61:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "functionReturnParameters": 1806,
                                    "id": 1854,
                                    "nodeType": "Return",
                                    "src": "7536:67:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 1856,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "requestPurchase",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1803,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1796,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1856,
                                    "src": "6955:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1795,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6955:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1798,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1856,
                                    "src": "6971:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1797,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6971:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1800,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1856,
                                    "src": "6986:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1799,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6986:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1802,
                                    "name": "cashContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1856,
                                    "src": "7004:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1801,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7004:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6954:71:14"
                        },
                        "returnParameters": {
                            "id": 1806,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1805,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 1856,
                                    "src": "7043:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 1804,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7043:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7042:6:14"
                        },
                        "scope": 3597,
                        "src": "6930:681:14",
                        "stateMutability": "nonpayable",
                        "superFunction": 8117,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 2079,
                            "nodeType": "Block",
                            "src": "7843:2373:14",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 1876,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1873,
                                                    "name": "cashContract",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1864,
                                                    "src": "7873:12:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 1871,
                                                    "name": "factory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1333,
                                                    "src": "7857:7:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                        "typeString": "contract ViaFactory"
                                                    }
                                                },
                                                "id": 1872,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getType",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8240,
                                                "src": "7857:15:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                    "typeString": "function (address) view external returns (bytes32)"
                                                }
                                            },
                                            "id": 1874,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "7857:29:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "56696143617368",
                                            "id": 1875,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "7888:9:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                "typeString": "literal_string \"ViaCash\""
                                            },
                                            "value": "ViaCash"
                                        },
                                        "src": "7857:40:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "id": 1895,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1892,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1862,
                                                        "src": "8153:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1890,
                                                        "name": "factory",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1333,
                                                        "src": "8124:7:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                            "typeString": "contract ViaFactory"
                                                        }
                                                    },
                                                    "id": 1891,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "checkSupportForToken",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8394,
                                                    "src": "8124:28:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                        "typeString": "function (bytes32) view external returns (bool)"
                                                    }
                                                },
                                                "id": 1893,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "8124:38:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "74727565",
                                                "id": 1894,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "bool",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8164:4:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "value": "true"
                                            },
                                            "src": "8124:44:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": null,
                                        "id": 1923,
                                        "nodeType": "IfStatement",
                                        "src": "8121:355:14",
                                        "trueBody": {
                                            "id": 1922,
                                            "nodeType": "Block",
                                            "src": "8169:307:14",
                                            "statements": [
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1900,
                                                                "name": "payer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1860,
                                                                "src": "8298:5:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1902,
                                                                        "name": "this",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 13075,
                                                                        "src": "8313:4:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_Bond_$3597",
                                                                            "typeString": "contract Bond"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_Bond_$3597",
                                                                            "typeString": "contract Bond"
                                                                        }
                                                                    ],
                                                                    "id": 1901,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                    "src": "8305:7:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                        "typeString": "type(address)"
                                                                    },
                                                                    "typeName": "address"
                                                                },
                                                                "id": 1903,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "8305:13:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1904,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1858,
                                                                "src": "8320:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1897,
                                                                        "name": "cashContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1864,
                                                                        "src": "8271:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 1896,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 409,
                                                                    "src": "8264:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 1898,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "8264:20:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            },
                                                            "id": 1899,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "transferFrom",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 392,
                                                            "src": "8264:33:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 1905,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "8264:63:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 1906,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "8264:63:14"
                                                },
                                                {
                                                    "assignments": [
                                                        1908
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 1908,
                                                            "name": "scalingFactor",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 1922,
                                                            "src": "8342:21:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "typeName": {
                                                                "id": 1907,
                                                                "name": "uint256",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "8342:7:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 1914,
                                                    "initialValue": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1911,
                                                                        "name": "cashContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1864,
                                                                        "src": "8395:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 1910,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 409,
                                                                    "src": "8388:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 1912,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "8388:20:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 1909,
                                                            "name": "_computeScalingFactor",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3580,
                                                            "src": "8366:21:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$409_$returns$_t_uint256_$",
                                                                "typeString": "function (contract IERC20) view returns (uint256)"
                                                            }
                                                        },
                                                        "id": 1913,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "8366:43:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "8342:67:14"
                                                },
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1920,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "id": 1915,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1858,
                                                            "src": "8424:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 1917,
                                                                    "name": "amount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1858,
                                                                    "src": "8442:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 1918,
                                                                    "name": "scalingFactor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1908,
                                                                    "src": "8450:13:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "id": 1916,
                                                                "name": "_upscale",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3596,
                                                                "src": "8433:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                }
                                                            },
                                                            "id": 1919,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "8433:31:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "8424:40:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "id": 1921,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "8424:40:14"
                                                }
                                            ]
                                        }
                                    },
                                    "id": 1924,
                                    "nodeType": "IfStatement",
                                    "src": "7854:622:14",
                                    "trueBody": {
                                        "id": 1889,
                                        "nodeType": "Block",
                                        "src": "7898:208:14",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "id": 1884,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "UnaryOperation",
                                                    "operator": "!",
                                                    "prefix": true,
                                                    "src": "7990:57:14",
                                                    "subExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1881,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1858,
                                                                "src": "8033:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1882,
                                                                "name": "payer",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1860,
                                                                "src": "8041:5:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 1878,
                                                                        "name": "cashContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1864,
                                                                        "src": "7999:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 1877,
                                                                    "name": "ViaCash",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8212,
                                                                    "src": "7991:7:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_ViaCash_$8212_$",
                                                                        "typeString": "type(contract ViaCash)"
                                                                    }
                                                                },
                                                                "id": 1879,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "7991:21:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaCash_$8212",
                                                                    "typeString": "contract ViaCash"
                                                                }
                                                            },
                                                            "id": 1880,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "requestAddToBalance",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8180,
                                                            "src": "7991:41:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                                "typeString": "function (uint256,address) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 1883,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "7991:56:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 1888,
                                                "nodeType": "IfStatement",
                                                "src": "7987:108:14",
                                                "trueBody": {
                                                    "id": 1887,
                                                    "nodeType": "Block",
                                                    "src": "8048:47:14",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "66616c7365",
                                                                "id": 1885,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "bool",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "8074:5:14",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                "value": "false"
                                                            },
                                                            "functionReturnParameters": 1870,
                                                            "id": 1886,
                                                            "nodeType": "Return",
                                                            "src": "8067:12:14"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                },
                                {
                                    "assignments": [
                                        1926
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1926,
                                            "name": "er",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2079,
                                            "src": "8486:10:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 1925,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8486:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1927,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8486:10:14"
                                },
                                {
                                    "assignments": [
                                        1929
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1929,
                                            "name": "ir",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2079,
                                            "src": "8507:10:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 1928,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8507:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1930,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8507:10:14"
                                },
                                {
                                    "assignments": [
                                        1932
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1932,
                                            "name": "price",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2079,
                                            "src": "8528:13:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 1931,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8528:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1933,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8528:13:14"
                                },
                                {
                                    "assignments": [
                                        1935
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1935,
                                            "name": "vt",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2079,
                                            "src": "8649:11:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                "typeString": "contract ViaToken"
                                            },
                                            "typeName": {
                                                "contractScope": null,
                                                "id": 1934,
                                                "name": "ViaToken",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 8499,
                                                "src": "8649:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                    "typeString": "contract ViaToken"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1939,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 1937,
                                                "name": "tokenContract",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1866,
                                                "src": "8672:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 1936,
                                            "name": "ViaToken",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8499,
                                            "src": "8663:8:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                "typeString": "type(contract ViaToken)"
                                            }
                                        },
                                        "id": 1938,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8663:23:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_ViaToken_$8499",
                                            "typeString": "contract ViaToken"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8649:37:14"
                                },
                                {
                                    "assignments": [
                                        1941
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1941,
                                            "name": "issuer",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2079,
                                            "src": "8697:14:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 1940,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8697:7:14",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1945,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 1942,
                                                "name": "vt",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1935,
                                                "src": "8714:2:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                    "typeString": "contract ViaToken"
                                                }
                                            },
                                            "id": 1943,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getIssuer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8434,
                                            "src": "8714:12:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 1944,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8714:14:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8697:31:14"
                                },
                                {
                                    "assignments": [
                                        1947
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 1947,
                                            "name": "tenure",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2079,
                                            "src": "8739:14:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 1946,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8739:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 1960,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 1953,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1950,
                                                        "name": "tokenContract",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1866,
                                                        "src": "8776:13:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1948,
                                                        "name": "factory",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1333,
                                                        "src": "8756:7:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                            "typeString": "contract ViaFactory"
                                                        }
                                                    },
                                                    "id": 1949,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "getBondTerm",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8297,
                                                    "src": "8756:19:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                        "typeString": "function (address) view external returns (uint256)"
                                                    }
                                                },
                                                "id": 1951,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "8756:34:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "30",
                                                "id": 1952,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8792:1:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_0_by_1",
                                                    "typeString": "int_const 0"
                                                },
                                                "value": "0"
                                            },
                                            "src": "8756:37:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 1957,
                                                    "name": "tokenContract",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1866,
                                                    "src": "8827:13:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 1955,
                                                    "name": "factory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1333,
                                                    "src": "8807:7:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                        "typeString": "contract ViaFactory"
                                                    }
                                                },
                                                "id": 1956,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getBondTerm",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8297,
                                                "src": "8807:19:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                    "typeString": "function (address) view external returns (uint256)"
                                                }
                                            },
                                            "id": 1958,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8807:34:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 1959,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "Conditional",
                                        "src": "8756:85:14",
                                        "trueExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3331353336303030",
                                            "id": 1954,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8796:8:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_31536000_by_1",
                                                "typeString": "int_const 31536000"
                                            },
                                            "value": "31536000"
                                        },
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8739:102:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 1990,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 1961,
                                            "name": "tenure",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1947,
                                            "src": "8852:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "condition": {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 1973,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 1964,
                                                            "name": "now",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 13009,
                                                            "src": "8870:3:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 1965,
                                                                        "name": "issues",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1349,
                                                                        "src": "8875:6:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                        }
                                                                    },
                                                                    "id": 1967,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 1966,
                                                                        "name": "issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1941,
                                                                        "src": "8882:6:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8875:14:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                    }
                                                                },
                                                                "id": 1969,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 1968,
                                                                    "name": "tokenContract",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1866,
                                                                    "src": "8890:13:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "8875:29:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                }
                                                            },
                                                            "id": 1970,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "timeIssuedOrSubscribed",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8072,
                                                            "src": "8875:52:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 1962,
                                                            "name": "Math",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10483,
                                                            "src": "8861:4:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                "typeString": "type(library Math)"
                                                            }
                                                        },
                                                        "id": 1963,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sub",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 10300,
                                                        "src": "8861:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 1971,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "8861:67:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 1972,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "8930:1:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "8861:70:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "falseExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 1977,
                                                        "name": "tenure",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1947,
                                                        "src": "8974:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1980,
                                                                "name": "now",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 13009,
                                                                "src": "8991:3:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 1981,
                                                                            "name": "issues",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1349,
                                                                            "src": "8996:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                            }
                                                                        },
                                                                        "id": 1983,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 1982,
                                                                            "name": "issuer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1941,
                                                                            "src": "9003:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "8996:14:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 1985,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 1984,
                                                                        "name": "tokenContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1866,
                                                                        "src": "9011:13:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8996:29:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                        "typeString": "struct ViaBond.bond storage ref"
                                                                    }
                                                                },
                                                                "id": 1986,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "timeIssuedOrSubscribed",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 8072,
                                                                "src": "8996:52:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1978,
                                                                "name": "Math",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10483,
                                                                "src": "8982:4:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                    "typeString": "type(library Math)"
                                                                }
                                                            },
                                                            "id": 1979,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "sub",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 10300,
                                                            "src": "8982:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 1987,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "8982:67:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 1975,
                                                        "name": "Math",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10483,
                                                        "src": "8965:4:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                            "typeString": "type(library Math)"
                                                        }
                                                    },
                                                    "id": 1976,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sub",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 10300,
                                                    "src": "8965:8:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 1988,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "8965:85:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "id": 1989,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "Conditional",
                                            "src": "8861:189:14",
                                            "trueExpression": {
                                                "argumentTypes": null,
                                                "id": 1974,
                                                "name": "tenure",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1947,
                                                "src": "8934:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "8852:198:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 1991,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8852:198:14"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 1994,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 1992,
                                            "name": "currency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1862,
                                            "src": "9064:8:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 1993,
                                            "name": "bondCurrency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1339,
                                            "src": "9074:12:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "9064:22:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 2067,
                                        "nodeType": "Block",
                                        "src": "9636:442:14",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2045,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 2038,
                                                        "name": "ir",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1929,
                                                        "src": "9892:2:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 2041,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1862,
                                                                "src": "9912:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 2042,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1862,
                                                                "src": "9922:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "6972",
                                                                "id": 2043,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "9932:4:14",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_8b922417f63369ce20019910344de1dd01bb41726847eb4fae04ae0780fa8122",
                                                                    "typeString": "literal_string \"ir\""
                                                                },
                                                                "value": "ir"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_8b922417f63369ce20019910344de1dd01bb41726847eb4fae04ae0780fa8122",
                                                                    "typeString": "literal_string \"ir\""
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2039,
                                                                "name": "oracle",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1337,
                                                                "src": "9897:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                                    "typeString": "contract ViaOracle"
                                                                }
                                                            },
                                                            "id": 2040,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "request",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8415,
                                                            "src": "9897:14:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                "typeString": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                            }
                                                        },
                                                        "id": 2044,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9897:40:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "9892:45:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 2046,
                                                "nodeType": "ExpressionStatement",
                                                "src": "9892:45:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2065,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 2047,
                                                        "name": "price",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1932,
                                                        "src": "9952:5:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 2050,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1858,
                                                                "src": "9979:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "31653138",
                                                                                "id": 2055,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "10017:4:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                                    "typeString": "int_const 1000000000000000000"
                                                                                },
                                                                                "value": "1e18"
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 2056,
                                                                                "name": "ir",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 1929,
                                                                                "src": "10023:2:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                                    "typeString": "int_const 1000000000000000000"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2053,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8909,
                                                                                "src": "10002:10:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 2054,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "add",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8546,
                                                                            "src": "10002:14:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 2057,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "10002:24:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 2060,
                                                                                "name": "tenure",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 1947,
                                                                                "src": "10047:6:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "3331353336303030",
                                                                                "id": 2061,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "10055:8:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_31536000_by_1",
                                                                                    "typeString": "int_const 31536000"
                                                                                },
                                                                                "value": "31536000"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_rational_31536000_by_1",
                                                                                    "typeString": "int_const 31536000"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2058,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8909,
                                                                                "src": "10028:10:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 2059,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "divDown",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8695,
                                                                            "src": "10028:18:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 2062,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "10028:36:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2051,
                                                                        "name": "LogExpMath",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10189,
                                                                        "src": "9987:10:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_LogExpMath_$10189_$",
                                                                            "typeString": "type(library LogExpMath)"
                                                                        }
                                                                    },
                                                                    "id": 2052,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "pow",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 9140,
                                                                    "src": "9987:14:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 2063,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9987:78:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2048,
                                                                "name": "FixedPoint",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8909,
                                                                "src": "9960:10:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                    "typeString": "type(library FixedPoint)"
                                                                }
                                                            },
                                                            "id": 2049,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "mulDown",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8604,
                                                            "src": "9960:18:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 2064,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9960:106:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "9952:114:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 2066,
                                                "nodeType": "ExpressionStatement",
                                                "src": "9952:114:14"
                                            }
                                        ]
                                    },
                                    "id": 2068,
                                    "nodeType": "IfStatement",
                                    "src": "9061:1017:14",
                                    "trueBody": {
                                        "id": 2037,
                                        "nodeType": "Block",
                                        "src": "9087:535:14",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2002,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 1995,
                                                        "name": "er",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1926,
                                                        "src": "9344:2:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1998,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1862,
                                                                "src": "9364:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 1999,
                                                                "name": "bondCurrency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1339,
                                                                "src": "9374:12:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "6572",
                                                                "id": 2000,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "9388:4:14",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                                    "typeString": "literal_string \"er\""
                                                                },
                                                                "value": "er"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                                    "typeString": "literal_string \"er\""
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 1996,
                                                                "name": "oracle",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1337,
                                                                "src": "9349:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                                    "typeString": "contract ViaOracle"
                                                                }
                                                            },
                                                            "id": 1997,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "request",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8415,
                                                            "src": "9349:14:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                "typeString": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                            }
                                                        },
                                                        "id": 2001,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9349:44:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "9344:49:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 2003,
                                                "nodeType": "ExpressionStatement",
                                                "src": "9344:49:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2011,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 2004,
                                                        "name": "ir",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1929,
                                                        "src": "9408:2:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 2007,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1862,
                                                                "src": "9428:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 2008,
                                                                "name": "bondCurrency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1339,
                                                                "src": "9438:12:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "6972",
                                                                "id": 2009,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "9452:4:14",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_8b922417f63369ce20019910344de1dd01bb41726847eb4fae04ae0780fa8122",
                                                                    "typeString": "literal_string \"ir\""
                                                                },
                                                                "value": "ir"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_8b922417f63369ce20019910344de1dd01bb41726847eb4fae04ae0780fa8122",
                                                                    "typeString": "literal_string \"ir\""
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2005,
                                                                "name": "oracle",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1337,
                                                                "src": "9413:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ViaOracle_$8427",
                                                                    "typeString": "contract ViaOracle"
                                                                }
                                                            },
                                                            "id": 2006,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "request",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8415,
                                                            "src": "9413:14:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                "typeString": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                            }
                                                        },
                                                        "id": 2010,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9413:44:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "9408:49:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 2012,
                                                "nodeType": "ExpressionStatement",
                                                "src": "9408:49:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2035,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 2013,
                                                        "name": "price",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1932,
                                                        "src": "9472:5:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 2018,
                                                                        "name": "amount",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1858,
                                                                        "src": "9518:6:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 2019,
                                                                        "name": "er",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1926,
                                                                        "src": "9526:2:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2016,
                                                                        "name": "FixedPoint",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8909,
                                                                        "src": "9499:10:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                            "typeString": "type(library FixedPoint)"
                                                                        }
                                                                    },
                                                                    "id": 2017,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "mulDown",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 8604,
                                                                    "src": "9499:18:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 2020,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9499:30:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "31653138",
                                                                                "id": 2025,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "9561:4:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                                    "typeString": "int_const 1000000000000000000"
                                                                                },
                                                                                "value": "1e18"
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 2026,
                                                                                "name": "ir",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 1929,
                                                                                "src": "9567:2:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                                    "typeString": "int_const 1000000000000000000"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2023,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8909,
                                                                                "src": "9546:10:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 2024,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "add",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8546,
                                                                            "src": "9546:14:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 2027,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "9546:24:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 2030,
                                                                                "name": "tenure",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 1947,
                                                                                "src": "9591:6:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "3331353336303030",
                                                                                "id": 2031,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "9599:8:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_31536000_by_1",
                                                                                    "typeString": "int_const 31536000"
                                                                                },
                                                                                "value": "31536000"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_rational_31536000_by_1",
                                                                                    "typeString": "int_const 31536000"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2028,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8909,
                                                                                "src": "9572:10:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 2029,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "divDown",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8695,
                                                                            "src": "9572:18:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 2032,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "9572:36:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2021,
                                                                        "name": "LogExpMath",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10189,
                                                                        "src": "9531:10:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_LogExpMath_$10189_$",
                                                                            "typeString": "type(library LogExpMath)"
                                                                        }
                                                                    },
                                                                    "id": 2022,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "pow",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 9140,
                                                                    "src": "9531:14:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 2033,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9531:78:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2014,
                                                                "name": "FixedPoint",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8909,
                                                                "src": "9480:10:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                    "typeString": "type(library FixedPoint)"
                                                                }
                                                            },
                                                            "id": 2015,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "mulDown",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8604,
                                                            "src": "9480:18:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 2034,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9480:130:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "9472:138:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 2036,
                                                "nodeType": "ExpressionStatement",
                                                "src": "9472:138:14"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 2070,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1860,
                                                "src": "10140:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2071,
                                                "name": "price",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1932,
                                                "src": "10147:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2072,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1858,
                                                "src": "10154:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2073,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1862,
                                                "src": "10162:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2074,
                                                "name": "cashContract",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1864,
                                                "src": "10172:12:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2075,
                                                "name": "tokenContract",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1866,
                                                "src": "10186:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2076,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1941,
                                                "src": "10201:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 2069,
                                            "name": "finallyPurchase",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2191,
                                            "src": "10124:15:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$_t_address_$returns$__$",
                                                "typeString": "function (address,uint256,uint256,bytes32,address,address,address)"
                                            }
                                        },
                                        "id": 2077,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10124:84:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 2078,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10124:84:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 2080,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "purchase",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 1867,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1858,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2080,
                                    "src": "7728:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 1857,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7728:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1860,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2080,
                                    "src": "7744:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1859,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7744:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1862,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2080,
                                    "src": "7759:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 1861,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7759:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1864,
                                    "name": "cashContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2080,
                                    "src": "7777:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1863,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7777:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 1866,
                                    "name": "tokenContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2080,
                                    "src": "7799:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 1865,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7799:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7727:94:14"
                        },
                        "returnParameters": {
                            "id": 1870,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 1869,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2080,
                                    "src": "7838:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 1868,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7838:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7837:6:14"
                        },
                        "scope": 3597,
                        "src": "7710:2506:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 2190,
                            "nodeType": "Block",
                            "src": "10407:1415:14",
                            "statements": [
                                {
                                    "assignments": [
                                        2098
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 2098,
                                            "name": "purchaseTime",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2190,
                                            "src": "10418:20:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 2097,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10418:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 2100,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "id": 2099,
                                        "name": "now",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13009,
                                        "src": "10441:3:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "10418:26:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 2105,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "UnaryOperation",
                                                "operator": "!",
                                                "prefix": true,
                                                "src": "10463:17:14",
                                                "subExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 2102,
                                                        "name": "lock",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1422,
                                                        "src": "10464:4:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                            "typeString": "mapping(bytes32 => bool)"
                                                        }
                                                    },
                                                    "id": 2104,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "7075726368617365",
                                                        "id": 2103,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "10469:10:14",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_21a54c395fa140984a9b0a773962386ef9665bf65bb9734960d63d151542c541",
                                                            "typeString": "literal_string \"purchase\""
                                                        },
                                                        "value": "purchase"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "10464:16:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 2101,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "10455:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 2106,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10455:26:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 2107,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10455:26:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 2112,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 2108,
                                                "name": "lock",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1422,
                                                "src": "10492:4:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                    "typeString": "mapping(bytes32 => bool)"
                                                }
                                            },
                                            "id": 2110,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "7075726368617365",
                                                "id": 2109,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10497:10:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_21a54c395fa140984a9b0a773962386ef9665bf65bb9734960d63d151542c541",
                                                    "typeString": "literal_string \"purchase\""
                                                },
                                                "value": "purchase"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "10492:16:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 2111,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10511:4:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "src": "10492:23:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 2113,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10492:23:14"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 2118,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2094,
                                                "src": "10745:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2119,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2082,
                                                "src": "10753:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2120,
                                                "name": "purchaseValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2084,
                                                "src": "10760:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 2115,
                                                        "name": "tokenContract",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2092,
                                                        "src": "10716:13:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 2114,
                                                    "name": "ViaToken",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8499,
                                                    "src": "10707:8:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                        "typeString": "type(contract ViaToken)"
                                                    }
                                                },
                                                "id": 2116,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "10707:23:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                    "typeString": "contract ViaToken"
                                                }
                                            },
                                            "id": 2117,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transferToken",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8445,
                                            "src": "10707:37:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 2121,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10707:67:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 2183,
                                    "nodeType": "IfStatement",
                                    "src": "10704:1068:14",
                                    "trueBody": {
                                        "id": 2182,
                                        "nodeType": "Block",
                                        "src": "10775:997:14",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2123,
                                                            "name": "cashContract",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2090,
                                                            "src": "11003:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2124,
                                                            "name": "paidInAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2086,
                                                            "src": "11017:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2125,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2094,
                                                            "src": "11031:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 2122,
                                                        "name": "send",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3359,
                                                        "src": "10998:4:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                                                            "typeString": "function (address,uint256,address)"
                                                        }
                                                    },
                                                    "id": 2126,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "10998:40:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 2127,
                                                "nodeType": "ExpressionStatement",
                                                "src": "10998:40:14"
                                            },
                                            {
                                                "assignments": [
                                                    2129
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 2129,
                                                        "name": "b",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 2182,
                                                        "src": "11118:14:14",
                                                        "stateVariable": false,
                                                        "storageLocation": "storage",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                            "typeString": "struct ViaBond.bond"
                                                        },
                                                        "typeName": {
                                                            "contractScope": null,
                                                            "id": 2128,
                                                            "name": "bond",
                                                            "nodeType": "UserDefinedTypeName",
                                                            "referencedDeclaration": 8078,
                                                            "src": "11118:4:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                                "typeString": "struct ViaBond.bond"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 2135,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 2130,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "11135:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 2132,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 2131,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2094,
                                                            "src": "11142:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "11135:14:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 2134,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 2133,
                                                        "name": "tokenContract",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2092,
                                                        "src": "11150:13:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "11135:29:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "11118:46:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2141,
                                                            "name": "payer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2082,
                                                            "src": "11201:5:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2136,
                                                                "name": "b",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2129,
                                                                "src": "11179:1:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                                }
                                                            },
                                                            "id": 2139,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "counterParties",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8077,
                                                            "src": "11179:16:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 2140,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "11179:21:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 2142,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "11179:28:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 2143,
                                                "nodeType": "ExpressionStatement",
                                                "src": "11179:28:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2160,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2144,
                                                                    "name": "issues",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1349,
                                                                    "src": "11301:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                    }
                                                                },
                                                                "id": 2147,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2145,
                                                                    "name": "issuer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2094,
                                                                    "src": "11308:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "11301:14:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                }
                                                            },
                                                            "id": 2148,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 2146,
                                                                "name": "tokenContract",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2092,
                                                                "src": "11316:13:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "11301:29:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                "typeString": "struct ViaBond.bond storage ref"
                                                            }
                                                        },
                                                        "id": 2149,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "purchasedIssueAmount",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8074,
                                                        "src": "11301:50:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2152,
                                                                            "name": "issues",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1349,
                                                                            "src": "11363:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                            }
                                                                        },
                                                                        "id": 2154,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2153,
                                                                            "name": "issuer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2094,
                                                                            "src": "11370:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "11363:14:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 2156,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2155,
                                                                        "name": "tokenContract",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2092,
                                                                        "src": "11378:13:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "11363:29:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                        "typeString": "struct ViaBond.bond storage ref"
                                                                    }
                                                                },
                                                                "id": 2157,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "purchasedIssueAmount",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 8074,
                                                                "src": "11363:50:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 2158,
                                                                "name": "purchaseValue",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2084,
                                                                "src": "11415:13:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2150,
                                                                "name": "Math",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10483,
                                                                "src": "11354:4:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                    "typeString": "type(library Math)"
                                                                }
                                                            },
                                                            "id": 2151,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "add",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 10236,
                                                            "src": "11354:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 2159,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "11354:75:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "11301:128:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 2161,
                                                "nodeType": "ExpressionStatement",
                                                "src": "11301:128:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2163,
                                                            "name": "payer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2082,
                                                            "src": "11510:5:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2164,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2094,
                                                            "src": "11517:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2165,
                                                            "name": "purchaseValue",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2084,
                                                            "src": "11525:13:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2166,
                                                            "name": "paidInAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2086,
                                                            "src": "11540:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2167,
                                                            "name": "paidInCashToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2088,
                                                            "src": "11554:15:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2168,
                                                            "name": "purchaseTime",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2098,
                                                            "src": "11571:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2169,
                                                            "name": "tokenContract",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2092,
                                                            "src": "11585:13:14",
                                                            "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_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 2162,
                                                        "name": "storePurchasedBond",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2270,
                                                        "src": "11491:18:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_address_$returns$__$",
                                                            "typeString": "function (address,address,uint256,uint256,bytes32,uint256,address)"
                                                        }
                                                    },
                                                    "id": 2170,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "11491:108:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 2171,
                                                "nodeType": "ExpressionStatement",
                                                "src": "11491:108:14"
                                            },
                                            {
                                                "eventCall": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2173,
                                                            "name": "payer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2082,
                                                            "src": "11669:5:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2174,
                                                            "name": "tokenContract",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2092,
                                                            "src": "11676:13:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2175,
                                                            "name": "bondName",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1341,
                                                            "src": "11691:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2176,
                                                            "name": "purchaseValue",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2084,
                                                            "src": "11701:13:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2177,
                                                            "name": "paidInCashToken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2088,
                                                            "src": "11716:15:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2178,
                                                            "name": "paidInAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2086,
                                                            "src": "11733:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2179,
                                                            "name": "purchaseTime",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2098,
                                                            "src": "11747:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 2172,
                                                        "name": "BondPurchased",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1404,
                                                        "src": "11655:13:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,address,bytes32,uint256,bytes32,uint256,uint256)"
                                                        }
                                                    },
                                                    "id": 2180,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "11655:105:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 2181,
                                                "nodeType": "EmitStatement",
                                                "src": "11650:110:14"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 2188,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 2184,
                                                "name": "lock",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1422,
                                                "src": "11782:4:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                    "typeString": "mapping(bytes32 => bool)"
                                                }
                                            },
                                            "id": 2186,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "7075726368617365",
                                                "id": 2185,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11787:10:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_21a54c395fa140984a9b0a773962386ef9665bf65bb9734960d63d151542c541",
                                                    "typeString": "literal_string \"purchase\""
                                                },
                                                "value": "purchase"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "11782:16:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 2187,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "11801:5:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "src": "11782:24:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 2189,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11782:24:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 2191,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "finallyPurchase",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 2095,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 2082,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2191,
                                    "src": "10253:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2081,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10253:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2084,
                                    "name": "purchaseValue",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2191,
                                    "src": "10268:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 2083,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10268:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2086,
                                    "name": "paidInAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2191,
                                    "src": "10291:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 2085,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10291:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2088,
                                    "name": "paidInCashToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2191,
                                    "src": "10313:23:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 2087,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10313:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2090,
                                    "name": "cashContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2191,
                                    "src": "10338:20:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2089,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10338:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2092,
                                    "name": "tokenContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2191,
                                    "src": "10360:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2091,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10360:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2094,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2191,
                                    "src": "10383:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2093,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10383:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "10252:146:14"
                        },
                        "returnParameters": {
                            "id": 2096,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "10407:0:14"
                        },
                        "scope": 3597,
                        "src": "10228:1594:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 2269,
                            "nodeType": "Block",
                            "src": "12061:438:14",
                            "statements": [
                                {
                                    "assignments": [
                                        2209
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 2209,
                                            "name": "b",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 2269,
                                            "src": "12072:14:14",
                                            "stateVariable": false,
                                            "storageLocation": "storage",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                "typeString": "struct ViaBond.bond"
                                            },
                                            "typeName": {
                                                "contractScope": null,
                                                "id": 2208,
                                                "name": "bond",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 8078,
                                                "src": "12072:4:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 2215,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 2210,
                                                "name": "purchases",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1355,
                                                "src": "12089:9:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                }
                                            },
                                            "id": 2212,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 2211,
                                                "name": "_payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2193,
                                                "src": "12099:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "12089:17:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                            }
                                        },
                                        "id": 2214,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 2213,
                                            "name": "_issuedBond",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2205,
                                            "src": "12107:11:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12089:30:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                            "typeString": "struct ViaBond.bond storage ref"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "12072:47:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 2221,
                                                "name": "_party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2195,
                                                "src": "12152:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2216,
                                                    "name": "b",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2209,
                                                    "src": "12130:1:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                        "typeString": "struct ViaBond.bond storage pointer"
                                                    }
                                                },
                                                "id": 2219,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "counterParties",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8077,
                                                "src": "12130:16:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 2220,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "12130:21:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) returns (uint256)"
                                            }
                                        },
                                        "id": 2222,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12130:29:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 2223,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12130:29:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 2233,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 2224,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2209,
                                                "src": "12170:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 2226,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "purchasedIssueAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8074,
                                            "src": "12170:22:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 2229,
                                                        "name": "b",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2209,
                                                        "src": "12204:1:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                            "typeString": "struct ViaBond.bond storage pointer"
                                                        }
                                                    },
                                                    "id": 2230,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "purchasedIssueAmount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8074,
                                                    "src": "12204:22:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 2231,
                                                    "name": "_purchasedIssueAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2197,
                                                    "src": "12228:21:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2227,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "12195:4:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 2228,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10236,
                                                "src": "12195:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 2232,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "12195:55:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "12170:80:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 2234,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12170:80:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 2244,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 2235,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2209,
                                                "src": "12261:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 2237,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "paidInAmount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8068,
                                            "src": "12261:14:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 2240,
                                                        "name": "b",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2209,
                                                        "src": "12287:1:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                            "typeString": "struct ViaBond.bond storage pointer"
                                                        }
                                                    },
                                                    "id": 2241,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "paidInAmount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8068,
                                                    "src": "12287:14:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 2242,
                                                    "name": "_paidInAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2199,
                                                    "src": "12303:13:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2238,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "12278:4:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 2239,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10236,
                                                "src": "12278:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 2243,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "12278:39:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "12261:56:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 2245,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12261:56:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 2250,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 2246,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2209,
                                                "src": "12328:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 2248,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "paidInCurrency",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8070,
                                            "src": "12328:16:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 2249,
                                            "name": "_paidInCashToken",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2201,
                                            "src": "12347:16:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "12328:35:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "id": 2251,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12328:35:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 2267,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 2252,
                                                "name": "b",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2209,
                                                "src": "12374:1:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                }
                                            },
                                            "id": 2254,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "timeIssuedOrSubscribed",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8072,
                                            "src": "12374:24:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2259,
                                                                "name": "b",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2209,
                                                                "src": "12423:1:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                                    "typeString": "struct ViaBond.bond storage pointer"
                                                                }
                                                            },
                                                            "id": 2260,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "timeIssuedOrSubscribed",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8072,
                                                            "src": "12423:24:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2261,
                                                            "name": "_timeSubscribed",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2203,
                                                            "src": "12449:15:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 2257,
                                                            "name": "Math",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10483,
                                                            "src": "12414:4:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                "typeString": "type(library Math)"
                                                            }
                                                        },
                                                        "id": 2258,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "add",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 10236,
                                                        "src": "12414:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 2262,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "12414:51:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 2263,
                                                            "name": "b",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2209,
                                                            "src": "12467:1:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_bond_$8078_storage_ptr",
                                                                "typeString": "struct ViaBond.bond storage pointer"
                                                            }
                                                        },
                                                        "id": 2264,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "counterParties",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8077,
                                                        "src": "12467:16:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                            "typeString": "address[] storage ref"
                                                        }
                                                    },
                                                    "id": 2265,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "12467:23:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2255,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10483,
                                                    "src": "12401:4:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 2256,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "divDown",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10448,
                                                "src": "12401:12:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 2266,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "12401:90:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "12374:117:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 2268,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12374:117:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 2270,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "storePurchasedBond",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 2206,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 2193,
                                    "name": "_payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2270,
                                    "src": "11895:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2192,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11895:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2195,
                                    "name": "_party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2270,
                                    "src": "11911:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2194,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11911:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2197,
                                    "name": "_purchasedIssueAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2270,
                                    "src": "11927:29:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 2196,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11927:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2199,
                                    "name": "_paidInAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2270,
                                    "src": "11958:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 2198,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11958:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2201,
                                    "name": "_paidInCashToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2270,
                                    "src": "11981:24:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 2200,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11981:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2203,
                                    "name": "_timeSubscribed",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2270,
                                    "src": "12007:23:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 2202,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12007:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2205,
                                    "name": "_issuedBond",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2270,
                                    "src": "12032:19:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2204,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12032:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11894:158:14"
                        },
                        "returnParameters": {
                            "id": 2207,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12061:0:14"
                        },
                        "scope": 3597,
                        "src": "11867:632:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 2320,
                            "nodeType": "Block",
                            "src": "12628:581:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 2286,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 2284,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12542,
                                                    "src": "12687:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 2285,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "12697:5:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "12687:15:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 2283,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "12679:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 2287,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12679:24:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 2288,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12679:24:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 2294,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 2291,
                                                            "name": "payer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2274,
                                                            "src": "12759:5:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 2290,
                                                        "name": "amlCheck",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3501,
                                                        "src": "12750:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (address) view returns (bool)"
                                                        }
                                                    },
                                                    "id": 2292,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "12750:15:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 2293,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "12767:4:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "src": "12750:21:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "414d4c4120636865636b206661696c",
                                                "id": 2295,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "12773:17:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3c7258d955df0c2950494da254538959da95fa93d59d3cf47b2c345865db433b",
                                                    "typeString": "literal_string \"AMLA check fail\""
                                                },
                                                "value": "AMLA check fail"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3c7258d955df0c2950494da254538959da95fa93d59d3cf47b2c345865db433b",
                                                    "typeString": "literal_string \"AMLA check fail\""
                                                }
                                            ],
                                            "id": 2289,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "12742:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 2296,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12742:49:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 2297,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12742:49:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 2305,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 2301,
                                                                "name": "msg",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 13007,
                                                                "src": "12826:3:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_message",
                                                                    "typeString": "msg"
                                                                }
                                                            },
                                                            "id": 2302,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "sender",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": null,
                                                            "src": "12826:10:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 2299,
                                                            "name": "factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1333,
                                                            "src": "12810:7:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 2300,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getType",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8240,
                                                        "src": "12810:15:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                            "typeString": "function (address) view external returns (bytes32)"
                                                        }
                                                    },
                                                    "id": 2303,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "12810:27:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "566961426f6e64546f6b656e",
                                                    "id": 2304,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "12841:14:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_4c19ae4ab2cb4ec4ecfdd0e1418f065638103e1c91c3461c18dc6cee3fc03c59",
                                                        "typeString": "literal_string \"ViaBondToken\""
                                                    },
                                                    "value": "ViaBondToken"
                                                },
                                                "src": "12810:45:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 2298,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "12802:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 2306,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12802:54:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 2307,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12802:54:14"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 2309,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2272,
                                                "src": "13079:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2310,
                                                "name": "payer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2274,
                                                "src": "13087:5:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2311,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2276,
                                                "src": "13094:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436173685472616e73666572",
                                                "id": 2312,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "13104:14:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_5d42e0c8c46379bda38784c21642f9eee896ca9b90e23453b96545edc3458bec",
                                                    "typeString": "literal_string \"CashTransfer\""
                                                },
                                                "value": "CashTransfer"
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 2313,
                                                "name": "tokenContract",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2278,
                                                "src": "13120:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_5d42e0c8c46379bda38784c21642f9eee896ca9b90e23453b96545edc3458bec",
                                                    "typeString": "literal_string \"CashTransfer\""
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 2308,
                                            "name": "redeem",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3094,
                                            "src": "13072:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bool_$",
                                                "typeString": "function (uint256,address,bytes32,bytes32,address) returns (bool)"
                                            }
                                        },
                                        "id": 2314,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13072:62:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 2317,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "13196:5:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "functionReturnParameters": 2282,
                                        "id": 2318,
                                        "nodeType": "Return",
                                        "src": "13189:12:14"
                                    },
                                    "id": 2319,
                                    "nodeType": "IfStatement",
                                    "src": "13069:132:14",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 2315,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "13156:4:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "functionReturnParameters": 2282,
                                        "id": 2316,
                                        "nodeType": "Return",
                                        "src": "13149:11:14"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 2321,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "requestRedemption",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 2279,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 2272,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2321,
                                    "src": "12534:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 2271,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12534:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2274,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2321,
                                    "src": "12550:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2273,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12550:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2276,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2321,
                                    "src": "12565:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 2275,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12565:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2278,
                                    "name": "tokenContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2321,
                                    "src": "12583:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2277,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12583:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12533:72:14"
                        },
                        "returnParameters": {
                            "id": 2282,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 2281,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 2321,
                                    "src": "12623:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 2280,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12623:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12622:6:14"
                        },
                        "scope": 3597,
                        "src": "12507:702:14",
                        "stateMutability": "nonpayable",
                        "superFunction": 8130,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 3093,
                            "nodeType": "Block",
                            "src": "13437:10040:14",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 2338,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 2336,
                                            "name": "action",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2329,
                                            "src": "13565:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "546f6b656e5472616e73666572",
                                            "id": 2337,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "13573:15:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_c335324393403d7912173b36ea8a4cce018c23e28c98da8b2f4fcdbab5b142d5",
                                                "typeString": "literal_string \"TokenTransfer\""
                                            },
                                            "value": "TokenTransfer"
                                        },
                                        "src": "13565:23:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 2730,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 2728,
                                                "name": "action",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2329,
                                                "src": "18807:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "436173685472616e73666572",
                                                "id": 2729,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "18815:14:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_5d42e0c8c46379bda38784c21642f9eee896ca9b90e23453b96545edc3458bec",
                                                    "typeString": "literal_string \"CashTransfer\""
                                                },
                                                "value": "CashTransfer"
                                            },
                                            "src": "18807:22:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": null,
                                        "id": 3091,
                                        "nodeType": "IfStatement",
                                        "src": "18804:4666:14",
                                        "trueBody": {
                                            "id": 3090,
                                            "nodeType": "Block",
                                            "src": "18830:4640:14",
                                            "statements": [
                                                {
                                                    "assignments": [
                                                        2732
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 2732,
                                                            "name": "viaAddress",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 3090,
                                                            "src": "18857:18:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "typeName": {
                                                                "id": 2731,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "18857:7:14",
                                                                "stateMutability": "nonpayable",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 2733,
                                                    "initialValue": null,
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "18857:18:14"
                                                },
                                                {
                                                    "assignments": [
                                                        2735
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 2735,
                                                            "name": "status",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 3090,
                                                            "src": "18890:11:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "typeName": {
                                                                "id": 2734,
                                                                "name": "bool",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "18890:4:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 2737,
                                                    "initialValue": {
                                                        "argumentTypes": null,
                                                        "hexValue": "66616c7365",
                                                        "id": 2736,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "18904:5:14",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "false"
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "18890:19:14"
                                                },
                                                {
                                                    "assignments": [
                                                        2739
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 2739,
                                                            "name": "totalToRedeem",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 3090,
                                                            "src": "18924:21:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "typeName": {
                                                                "id": 2738,
                                                                "name": "uint256",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "18924:7:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 2740,
                                                    "initialValue": null,
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "18924:21:14"
                                                },
                                                {
                                                    "assignments": [
                                                        2742
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 2742,
                                                            "name": "issuer",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 3090,
                                                            "src": "18960:14:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "typeName": {
                                                                "id": 2741,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "18960:7:14",
                                                                "stateMutability": "nonpayable",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 2744,
                                                    "initialValue": {
                                                        "argumentTypes": null,
                                                        "id": 2743,
                                                        "name": "payer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2325,
                                                        "src": "18977:5:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "18960:22:14"
                                                },
                                                {
                                                    "assignments": [
                                                        2746
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 2746,
                                                            "name": "bondToken",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 3090,
                                                            "src": "18997:17:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "typeName": {
                                                                "id": 2745,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "18997:7:14",
                                                                "stateMutability": "nonpayable",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 2748,
                                                    "initialValue": {
                                                        "argumentTypes": null,
                                                        "id": 2747,
                                                        "name": "tokenContract",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2331,
                                                        "src": "19017:13:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "18997:33:14"
                                                },
                                                {
                                                    "assignments": [
                                                        2750
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 2750,
                                                            "name": "redeemAmount",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 3090,
                                                            "src": "19045:20:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "typeName": {
                                                                "id": 2749,
                                                                "name": "uint256",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "19045:7:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 2752,
                                                    "initialValue": {
                                                        "argumentTypes": null,
                                                        "id": 2751,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2323,
                                                        "src": "19068:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "19045:29:14"
                                                },
                                                {
                                                    "assignments": [
                                                        2754
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 2754,
                                                            "name": "bondTokenName",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 3090,
                                                            "src": "19089:21:14",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "typeName": {
                                                                "id": 2753,
                                                                "name": "bytes32",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "19089:7:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "value": null,
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 2756,
                                                    "initialValue": {
                                                        "argumentTypes": null,
                                                        "id": 2755,
                                                        "name": "tokenName",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2327,
                                                        "src": "19113:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "19089:33:14"
                                                },
                                                {
                                                    "condition": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 2764,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2757,
                                                                        "name": "issues",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1349,
                                                                        "src": "19140:6:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                        }
                                                                    },
                                                                    "id": 2759,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2758,
                                                                        "name": "issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2742,
                                                                        "src": "19147:6:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "19140:14:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                    }
                                                                },
                                                                "id": 2761,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2760,
                                                                    "name": "bondToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2746,
                                                                    "src": "19155:9:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "19140:25:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                }
                                                            },
                                                            "id": 2762,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "timeIssuedOrSubscribed",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 8072,
                                                            "src": "19140:48:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 2763,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "19191:1:14",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        },
                                                        "src": "19140:52:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "falseBody": null,
                                                    "id": 3087,
                                                    "nodeType": "IfStatement",
                                                    "src": "19137:4294:14",
                                                    "trueBody": {
                                                        "id": 3086,
                                                        "nodeType": "Block",
                                                        "src": "19193:4238:14",
                                                        "statements": [
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2769,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "UnaryOperation",
                                                                            "operator": "!",
                                                                            "prefix": true,
                                                                            "src": "19223:23:14",
                                                                            "subExpression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2766,
                                                                                    "name": "lock",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 1422,
                                                                                    "src": "19224:4:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                        "typeString": "mapping(bytes32 => bool)"
                                                                                    }
                                                                                },
                                                                                "id": 2768,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "63617368726564656d7074696f6e",
                                                                                    "id": 2767,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "19229:16:14",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_9540495fb8838c0de7c9964bb1b3e6898e14147b77dc1a03fe3aaba5f1c4e43c",
                                                                                        "typeString": "literal_string \"cashredemption\""
                                                                                    },
                                                                                    "value": "cashredemption"
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "19224:22:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        ],
                                                                        "id": 2765,
                                                                        "name": "require",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [
                                                                            13010,
                                                                            13011
                                                                        ],
                                                                        "referencedDeclaration": 13010,
                                                                        "src": "19215:7:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                                            "typeString": "function (bool) pure"
                                                                        }
                                                                    },
                                                                    "id": 2770,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "19215:32:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_tuple$__$",
                                                                        "typeString": "tuple()"
                                                                    }
                                                                },
                                                                "id": 2771,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "19215:32:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2776,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2772,
                                                                            "name": "lock",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1422,
                                                                            "src": "19266:4:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                "typeString": "mapping(bytes32 => bool)"
                                                                            }
                                                                        },
                                                                        "id": 2774,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "63617368726564656d7074696f6e",
                                                                            "id": 2773,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "19271:16:14",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_9540495fb8838c0de7c9964bb1b3e6898e14147b77dc1a03fe3aaba5f1c4e43c",
                                                                                "typeString": "literal_string \"cashredemption\""
                                                                            },
                                                                            "value": "cashredemption"
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "19266:22:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "74727565",
                                                                        "id": 2775,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "bool",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "19291:4:14",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        },
                                                                        "value": "true"
                                                                    },
                                                                    "src": "19266:29:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "id": 2777,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "19266:29:14"
                                                            },
                                                            {
                                                                "condition": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2780,
                                                                            "name": "bondTokenName",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2754,
                                                                            "src": "19359:13:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2778,
                                                                            "name": "factory",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1333,
                                                                            "src": "19330:7:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                "typeString": "contract ViaFactory"
                                                                            }
                                                                        },
                                                                        "id": 2779,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "checkSupportForToken",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 8394,
                                                                        "src": "19330:28:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                                            "typeString": "function (bytes32) view external returns (bool)"
                                                                        }
                                                                    },
                                                                    "id": 2781,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "19330:43:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "falseBody": {
                                                                    "id": 2821,
                                                                    "nodeType": "Block",
                                                                    "src": "19606:251:14",
                                                                    "statements": [
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2807,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2801,
                                                                                    "name": "viaAddress",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2732,
                                                                                    "src": "19629:10:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "hexValue": "56696143617368",
                                                                                            "id": 2804,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "kind": "string",
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "Literal",
                                                                                            "src": "19660:9:14",
                                                                                            "subdenomination": null,
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                "typeString": "literal_string \"ViaCash\""
                                                                                            },
                                                                                            "value": "ViaCash"
                                                                                        },
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2805,
                                                                                            "name": "bondTokenName",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2754,
                                                                                            "src": "19671:13:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                "typeString": "literal_string \"ViaCash\""
                                                                                            },
                                                                                            {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2802,
                                                                                            "name": "factory",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 1333,
                                                                                            "src": "19642:7:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                "typeString": "contract ViaFactory"
                                                                                            }
                                                                                        },
                                                                                        "id": 2803,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "getIssuer",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8258,
                                                                                        "src": "19642:17:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                                            "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2806,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "functionCall",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "19642:43:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "src": "19629:56:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "id": 2808,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "19629:56:14"
                                                                        },
                                                                        {
                                                                            "condition": {
                                                                                "argumentTypes": null,
                                                                                "id": 2816,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "UnaryOperation",
                                                                                "operator": "!",
                                                                                "prefix": true,
                                                                                "src": "19711:62:14",
                                                                                "subExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2813,
                                                                                            "name": "redeemAmount",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2750,
                                                                                            "src": "19752:12:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2814,
                                                                                            "name": "issuer",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2742,
                                                                                            "src": "19766:6:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2810,
                                                                                                    "name": "viaAddress",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2732,
                                                                                                    "src": "19720:10:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2809,
                                                                                                "name": "ViaCash",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 8212,
                                                                                                "src": "19712:7:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_type$_t_contract$_ViaCash_$8212_$",
                                                                                                    "typeString": "type(contract ViaCash)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2811,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "typeConversion",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "19712:19:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_contract$_ViaCash_$8212",
                                                                                                "typeString": "contract ViaCash"
                                                                                            }
                                                                                        },
                                                                                        "id": 2812,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "requestAddToBalance",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8180,
                                                                                        "src": "19712:39:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_bool_$",
                                                                                            "typeString": "function (uint256,address) external returns (bool)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2815,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "functionCall",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "19712:61:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "falseBody": null,
                                                                            "id": 2820,
                                                                            "nodeType": "IfStatement",
                                                                            "src": "19708:130:14",
                                                                            "trueBody": {
                                                                                "id": 2819,
                                                                                "nodeType": "Block",
                                                                                "src": "19774:64:14",
                                                                                "statements": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2817,
                                                                                            "name": "status",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2735,
                                                                                            "src": "19808:6:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            }
                                                                                        },
                                                                                        "functionReturnParameters": 2335,
                                                                                        "id": 2818,
                                                                                        "nodeType": "Return",
                                                                                        "src": "19801:13:14"
                                                                                    }
                                                                                ]
                                                                            }
                                                                        }
                                                                    ]
                                                                },
                                                                "id": 2822,
                                                                "nodeType": "IfStatement",
                                                                "src": "19327:530:14",
                                                                "trueBody": {
                                                                    "id": 2800,
                                                                    "nodeType": "Block",
                                                                    "src": "19374:210:14",
                                                                    "statements": [
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2787,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2782,
                                                                                    "name": "viaAddress",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2732,
                                                                                    "src": "19397:10:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2785,
                                                                                            "name": "bondTokenName",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2754,
                                                                                            "src": "19435:13:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2783,
                                                                                            "name": "factory",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 1333,
                                                                                            "src": "19410:7:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                "typeString": "contract ViaFactory"
                                                                                            }
                                                                                        },
                                                                                        "id": 2784,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "getCurrencyToken",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8401,
                                                                                        "src": "19410:24:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                                                            "typeString": "function (bytes32) view external returns (address)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2786,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "functionCall",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "19410:39:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "src": "19397:52:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "id": 2788,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "19397:52:14"
                                                                        },
                                                                        {
                                                                            "condition": {
                                                                                "argumentTypes": null,
                                                                                "commonType": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                "id": 2796,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2793,
                                                                                            "name": "issuer",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2742,
                                                                                            "src": "19504:6:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2790,
                                                                                                    "name": "viaAddress",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2732,
                                                                                                    "src": "19482:10:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2789,
                                                                                                "name": "IERC20",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 409,
                                                                                                "src": "19475:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                                                    "typeString": "type(contract IERC20)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2791,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "typeConversion",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "19475:18:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                                "typeString": "contract IERC20"
                                                                                            }
                                                                                        },
                                                                                        "id": 2792,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "balanceOf",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 354,
                                                                                        "src": "19475:28:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                                                            "typeString": "function (address) view external returns (uint256)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2794,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "functionCall",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "19475:36:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "nodeType": "BinaryOperation",
                                                                                "operator": "<",
                                                                                "rightExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2795,
                                                                                    "name": "redeemAmount",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2750,
                                                                                    "src": "19512:12:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "src": "19475:49:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "falseBody": null,
                                                                            "id": 2799,
                                                                            "nodeType": "IfStatement",
                                                                            "src": "19472:92:14",
                                                                            "trueBody": {
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2797,
                                                                                    "name": "status",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2735,
                                                                                    "src": "19558:6:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "functionReturnParameters": 2335,
                                                                                "id": 2798,
                                                                                "nodeType": "Return",
                                                                                "src": "19551:13:14"
                                                                            }
                                                                        }
                                                                    ]
                                                                }
                                                            },
                                                            {
                                                                "assignments": [
                                                                    2824
                                                                ],
                                                                "declarations": [
                                                                    {
                                                                        "constant": false,
                                                                        "id": 2824,
                                                                        "name": "p",
                                                                        "nodeType": "VariableDeclaration",
                                                                        "scope": 3086,
                                                                        "src": "19950:6:14",
                                                                        "stateVariable": false,
                                                                        "storageLocation": "default",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 2823,
                                                                            "name": "uint",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "19950:4:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "value": null,
                                                                        "visibility": "internal"
                                                                    }
                                                                ],
                                                                "id": 2826,
                                                                "initialValue": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "30",
                                                                    "id": 2825,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "19959:1:14",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "nodeType": "VariableDeclarationStatement",
                                                                "src": "19950:10:14"
                                                            },
                                                            {
                                                                "body": {
                                                                    "id": 3005,
                                                                    "nodeType": "Block",
                                                                    "src": "20043:2381:14",
                                                                    "statements": [
                                                                        {
                                                                            "assignments": [
                                                                                2844
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 2844,
                                                                                    "name": "purchaser",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 3005,
                                                                                    "src": "20066:17:14",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 2843,
                                                                                        "name": "address",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "20066:7:14",
                                                                                        "stateMutability": "nonpayable",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 2853,
                                                                            "initialValue": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2845,
                                                                                                "name": "issues",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 1349,
                                                                                                "src": "20086:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                }
                                                                                            },
                                                                                            "id": 2847,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2846,
                                                                                                "name": "issuer",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2742,
                                                                                                "src": "20093:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "20086:14:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2849,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2848,
                                                                                            "name": "bondToken",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2746,
                                                                                            "src": "20101:9:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "20086:25:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                                        }
                                                                                    },
                                                                                    "id": 2850,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "counterParties",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8077,
                                                                                    "src": "20086:40:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                        "typeString": "address[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 2852,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2851,
                                                                                    "name": "p",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2824,
                                                                                    "src": "20127:1:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "20086:43:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "20066:63:14"
                                                                        },
                                                                        {
                                                                            "assignments": [
                                                                                2855
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 2855,
                                                                                    "name": "proportionPurchased",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 3005,
                                                                                    "src": "20344:27:14",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 2854,
                                                                                        "name": "uint256",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "20344:7:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 2871,
                                                                            "initialValue": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2858,
                                                                                                    "name": "purchases",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 1355,
                                                                                                    "src": "20393:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2860,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2859,
                                                                                                    "name": "purchaser",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2844,
                                                                                                    "src": "20403:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "20393:20:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2862,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2861,
                                                                                                "name": "bondToken",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2746,
                                                                                                "src": "20414:9:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "20393:31:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 2863,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "purchasedIssueAmount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8074,
                                                                                        "src": "20393:52:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2864,
                                                                                                    "name": "issues",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 1349,
                                                                                                    "src": "20447:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2866,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2865,
                                                                                                    "name": "issuer",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2742,
                                                                                                    "src": "20454:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "20447:14:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2868,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2867,
                                                                                                "name": "tokenContract",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2331,
                                                                                                "src": "20462:13:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "20447:29:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 2869,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "parValue",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8066,
                                                                                        "src": "20447:38:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2856,
                                                                                        "name": "FixedPoint",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 8909,
                                                                                        "src": "20374:10:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                            "typeString": "type(library FixedPoint)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2857,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "divDown",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8695,
                                                                                    "src": "20374:18:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 2870,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "20374:112:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "20344:142:14"
                                                                        },
                                                                        {
                                                                            "assignments": [
                                                                                2873
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 2873,
                                                                                    "name": "redemptionAmount",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 3005,
                                                                                    "src": "20509:24:14",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 2872,
                                                                                        "name": "uint256",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "20509:7:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 2884,
                                                                            "initialValue": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2876,
                                                                                        "name": "proportionPurchased",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2855,
                                                                                        "src": "20555:19:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2877,
                                                                                                    "name": "issues",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 1349,
                                                                                                    "src": "20576:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2879,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2878,
                                                                                                    "name": "issuer",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2742,
                                                                                                    "src": "20583:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "20576:14:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2881,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2880,
                                                                                                "name": "bondToken",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2746,
                                                                                                "src": "20591:9:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "20576:25:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 2882,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "parValue",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8066,
                                                                                        "src": "20576:34:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2874,
                                                                                        "name": "FixedPoint",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 8909,
                                                                                        "src": "20536:10:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                            "typeString": "type(library FixedPoint)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2875,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "mulDown",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8604,
                                                                                    "src": "20536:18:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 2883,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "20536:75:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "20509:102:14"
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2913,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2885,
                                                                                    "name": "redemptionAmount",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2873,
                                                                                    "src": "20701:16:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "nodeType": "Assignment",
                                                                                "operator": "=",
                                                                                "rightHandSide": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2888,
                                                                                            "name": "redemptionAmount",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2873,
                                                                                            "src": "20739:16:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2893,
                                                                                                            "name": "now",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 13009,
                                                                                                            "src": "20827:3:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2894,
                                                                                                                        "name": "purchases",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 1355,
                                                                                                                        "src": "20832:9:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 2896,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2895,
                                                                                                                        "name": "purchaser",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 2844,
                                                                                                                        "src": "20842:9:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "20832:20:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2898,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2897,
                                                                                                                    "name": "bondToken",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                    "src": "20853:9:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "20832:31:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2899,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "timeIssuedOrSubscribed",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8072,
                                                                                                            "src": "20832:54:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2891,
                                                                                                            "name": "Math",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "src": "20818:4:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                                "typeString": "type(library Math)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2892,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "sub",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 10300,
                                                                                                        "src": "20818:8:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2900,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "20818:69:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2903,
                                                                                                            "name": "now",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 13009,
                                                                                                            "src": "20939:3:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2904,
                                                                                                                        "name": "issues",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 1349,
                                                                                                                        "src": "20944:6:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 2906,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2905,
                                                                                                                        "name": "issuer",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 2742,
                                                                                                                        "src": "20951:6:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "20944:14:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2908,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2907,
                                                                                                                    "name": "bondToken",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                    "src": "20959:9:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "20944:25:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2909,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "timeIssuedOrSubscribed",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8072,
                                                                                                            "src": "20944:48:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2901,
                                                                                                            "name": "Math",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "src": "20930:4:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                                "typeString": "type(library Math)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2902,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "sub",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 10300,
                                                                                                        "src": "20930:8:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2910,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "functionCall",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "20930:63:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2889,
                                                                                                    "name": "FixedPoint",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 8909,
                                                                                                    "src": "20757:10:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                                        "typeString": "type(library FixedPoint)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2890,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "memberName": "divDown",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 8695,
                                                                                                "src": "20757:18:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2911,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "20757:237:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2886,
                                                                                            "name": "FixedPoint",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 8909,
                                                                                            "src": "20720:10:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                                "typeString": "type(library FixedPoint)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2887,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "mulDown",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8604,
                                                                                        "src": "20720:18:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2912,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "kind": "functionCall",
                                                                                    "lValueRequested": false,
                                                                                    "names": [],
                                                                                    "nodeType": "FunctionCall",
                                                                                    "src": "20720:275:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "src": "20701:294:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "id": 2914,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "20701:294:14"
                                                                        },
                                                                        {
                                                                            "condition": {
                                                                                "argumentTypes": null,
                                                                                "commonType": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "id": 2924,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    },
                                                                                    "id": 2919,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "leftExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2915,
                                                                                        "name": "viaAddress",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2732,
                                                                                        "src": "21106:10:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "nodeType": "BinaryOperation",
                                                                                    "operator": "!=",
                                                                                    "rightExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "hexValue": "307830",
                                                                                                "id": 2917,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "number",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "21126:3:14",
                                                                                                "subdenomination": null,
                                                                                                "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": 2916,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                                            "src": "21118:7:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                                                "typeString": "type(address)"
                                                                                            },
                                                                                            "typeName": "address"
                                                                                        },
                                                                                        "id": 2918,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "kind": "typeConversion",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "21118:12:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    },
                                                                                    "src": "21106:24:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "nodeType": "BinaryOperation",
                                                                                "operator": "&&",
                                                                                "rightExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "components": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "id": 2922,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2920,
                                                                                                "name": "redemptionAmount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2873,
                                                                                                "src": "21135:16:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "BinaryOperation",
                                                                                            "operator": ">",
                                                                                            "rightExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "hexValue": "30",
                                                                                                "id": 2921,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "number",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "21154:1:14",
                                                                                                "subdenomination": null,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                    "typeString": "int_const 0"
                                                                                                },
                                                                                                "value": "0"
                                                                                            },
                                                                                            "src": "21135:20:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "id": 2923,
                                                                                    "isConstant": false,
                                                                                    "isInlineArray": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "TupleExpression",
                                                                                    "src": "21134:22:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "src": "21106:50:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "falseBody": null,
                                                                            "id": 2985,
                                                                            "nodeType": "IfStatement",
                                                                            "src": "21103:1000:14",
                                                                            "trueBody": {
                                                                                "id": 2984,
                                                                                "nodeType": "Block",
                                                                                "src": "21157:946:14",
                                                                                "statements": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2931,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2925,
                                                                                                "name": "redemptionAmount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2873,
                                                                                                "src": "21238:16:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2927,
                                                                                                        "name": "redemptionAmount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2873,
                                                                                                        "src": "21264:16:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2928,
                                                                                                        "name": "bondTokenName",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2754,
                                                                                                        "src": "21282:13:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "hexValue": "726564656d7074696f6e",
                                                                                                        "id": 2929,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "kind": "string",
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "Literal",
                                                                                                        "src": "21297:12:14",
                                                                                                        "subdenomination": null,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                                            "typeString": "literal_string \"redemption\""
                                                                                                        },
                                                                                                        "value": "redemption"
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                                            "typeString": "literal_string \"redemption\""
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 2926,
                                                                                                    "name": "payFee",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3468,
                                                                                                    "src": "21257:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (uint256,bytes32,bytes32) returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2930,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "21257:53:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "src": "21238:72:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "id": 2932,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "21238:72:14"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2934,
                                                                                                    "name": "viaAddress",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2732,
                                                                                                    "src": "21342:10:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2935,
                                                                                                    "name": "redemptionAmount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2873,
                                                                                                    "src": "21354:16:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2936,
                                                                                                    "name": "purchaser",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2844,
                                                                                                    "src": "21372:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2933,
                                                                                                "name": "send",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3359,
                                                                                                "src": "21337:4:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                                                                                                    "typeString": "function (address,uint256,address)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2937,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "21337:45:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 2938,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "21337:45:14"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2945,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2939,
                                                                                                "name": "totalToRedeem",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2739,
                                                                                                "src": "21465:13:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2942,
                                                                                                        "name": "totalToRedeem",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2739,
                                                                                                        "src": "21490:13:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2943,
                                                                                                        "name": "redemptionAmount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2873,
                                                                                                        "src": "21505:16:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2940,
                                                                                                        "name": "Math",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10483,
                                                                                                        "src": "21481:4:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                            "typeString": "type(library Math)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2941,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "add",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 10236,
                                                                                                    "src": "21481:8:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2944,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "21481:41:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "src": "21465:57:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "id": 2946,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "21465:57:14"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2951,
                                                                                                    "name": "redemptionAmount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2873,
                                                                                                    "src": "21642:16:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2948,
                                                                                                            "name": "bondToken",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2746,
                                                                                                            "src": "21618:9:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2947,
                                                                                                        "name": "ViaToken",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 8499,
                                                                                                        "src": "21609:8:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                                                            "typeString": "type(contract ViaToken)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2949,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "typeConversion",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "21609:19:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                                                        "typeString": "contract ViaToken"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2950,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "memberName": "reduceSupply",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 8450,
                                                                                                "src": "21609:32:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                                                                                    "typeString": "function (uint256) external"
                                                                                                }
                                                                                            },
                                                                                            "id": 2952,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "21609:50:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 2953,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "21609:50:14"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2958,
                                                                                                    "name": "purchaser",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2844,
                                                                                                    "src": "21819:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2959,
                                                                                                    "name": "redemptionAmount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2873,
                                                                                                    "src": "21830:16:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2955,
                                                                                                            "name": "bondToken",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2746,
                                                                                                            "src": "21794:9:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": [
                                                                                                            {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2954,
                                                                                                        "name": "ViaToken",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 8499,
                                                                                                        "src": "21785:8:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                                                            "typeString": "type(contract ViaToken)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2956,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "kind": "typeConversion",
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [],
                                                                                                    "nodeType": "FunctionCall",
                                                                                                    "src": "21785:19:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                                                        "typeString": "contract ViaToken"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2957,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "memberName": "reduceBalance",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 8457,
                                                                                                "src": "21785:33:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                    "typeString": "function (address,uint256) external"
                                                                                                }
                                                                                            },
                                                                                            "id": 2960,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "21785:62:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 2961,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "21785:62:14"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2978,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2962,
                                                                                                            "name": "purchases",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 1355,
                                                                                                            "src": "21874:9:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2965,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2963,
                                                                                                            "name": "purchaser",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2844,
                                                                                                            "src": "21884:9:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "21874:20:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2966,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2964,
                                                                                                        "name": "bondToken",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2746,
                                                                                                        "src": "21895:9:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "21874:31:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                        "typeString": "struct ViaBond.bond storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2967,
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "memberName": "purchasedIssueAmount",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "referencedDeclaration": 8074,
                                                                                                "src": "21874:52:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2970,
                                                                                                                    "name": "purchases",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                    "src": "21968:9:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2972,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2971,
                                                                                                                    "name": "purchaser",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2844,
                                                                                                                    "src": "21978:9:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "21968:20:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2974,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2973,
                                                                                                                "name": "bondToken",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2746,
                                                                                                                "src": "21989:9:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "21968:31:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2975,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "purchasedIssueAmount",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 8074,
                                                                                                        "src": "21968:52:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2976,
                                                                                                        "name": "redemptionAmount",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2873,
                                                                                                        "src": "22022:16:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2968,
                                                                                                        "name": "Math",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10483,
                                                                                                        "src": "21959:4:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                            "typeString": "type(library Math)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2969,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "sub",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "src": "21959:8:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2977,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "21959:80:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "src": "21874:165:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "id": 2979,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "21874:165:14"
                                                                                    },
                                                                                    {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2982,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2980,
                                                                                                "name": "status",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2735,
                                                                                                "src": "22066:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bool",
                                                                                                    "typeString": "bool"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "hexValue": "74727565",
                                                                                                "id": 2981,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "bool",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "22075:4:14",
                                                                                                "subdenomination": null,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bool",
                                                                                                    "typeString": "bool"
                                                                                                },
                                                                                                "value": "true"
                                                                                            },
                                                                                            "src": "22066:13:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            }
                                                                                        },
                                                                                        "id": 2983,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "22066:13:14"
                                                                                    }
                                                                                ]
                                                                            }
                                                                        },
                                                                        {
                                                                            "condition": {
                                                                                "argumentTypes": null,
                                                                                "commonType": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "id": 2995,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2986,
                                                                                    "name": "status",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2735,
                                                                                    "src": "22152:6:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "nodeType": "BinaryOperation",
                                                                                "operator": "&&",
                                                                                "rightExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "id": 2994,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "leftExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2987,
                                                                                                    "name": "purchases",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 1355,
                                                                                                    "src": "22162:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2989,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2988,
                                                                                                    "name": "purchaser",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2844,
                                                                                                    "src": "22172:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "22162:20:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2991,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2990,
                                                                                                "name": "bondToken",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2746,
                                                                                                "src": "22183:9:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "22162:31:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 2992,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "purchasedIssueAmount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8074,
                                                                                        "src": "22162:52:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "nodeType": "BinaryOperation",
                                                                                    "operator": "==",
                                                                                    "rightExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "hexValue": "30",
                                                                                        "id": 2993,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "kind": "number",
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "Literal",
                                                                                        "src": "22216:1:14",
                                                                                        "subdenomination": null,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                            "typeString": "int_const 0"
                                                                                        },
                                                                                        "value": "0"
                                                                                    },
                                                                                    "src": "22162:55:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                },
                                                                                "src": "22152:65:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "falseBody": null,
                                                                            "id": 3004,
                                                                            "nodeType": "IfStatement",
                                                                            "src": "22149:235:14",
                                                                            "trueBody": {
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 3002,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "UnaryOperation",
                                                                                    "operator": "delete",
                                                                                    "prefix": true,
                                                                                    "src": "22345:39:14",
                                                                                    "subExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "components": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2996,
                                                                                                        "name": "purchases",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 1355,
                                                                                                        "src": "22352:9:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2998,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2997,
                                                                                                        "name": "purchaser",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2844,
                                                                                                        "src": "22362:9:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "22352:20:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 3000,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2999,
                                                                                                    "name": "bondToken",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2746,
                                                                                                    "src": "22373:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "22352:31:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "id": 3001,
                                                                                        "isConstant": false,
                                                                                        "isInlineArray": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": true,
                                                                                        "nodeType": "TupleExpression",
                                                                                        "src": "22351:33:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                                        }
                                                                                    },
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_tuple$__$",
                                                                                        "typeString": "tuple()"
                                                                                    }
                                                                                },
                                                                                "id": 3003,
                                                                                "nodeType": "ExpressionStatement",
                                                                                "src": "22345:39:14"
                                                                            }
                                                                        }
                                                                    ]
                                                                },
                                                                "condition": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "id": 2839,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2831,
                                                                        "name": "p",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2824,
                                                                        "src": "19988:1:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": "<",
                                                                    "rightExpression": {
                                                                        "argumentTypes": null,
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2832,
                                                                                        "name": "issues",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 1349,
                                                                                        "src": "19990:6:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                        }
                                                                                    },
                                                                                    "id": 2834,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2833,
                                                                                        "name": "issuer",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2742,
                                                                                        "src": "19997:6:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "19990:14:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                    }
                                                                                },
                                                                                "id": 2836,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2835,
                                                                                    "name": "bondToken",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2746,
                                                                                    "src": "20005:9:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "19990:25:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                }
                                                                            },
                                                                            "id": 2837,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "counterParties",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8077,
                                                                            "src": "19990:40:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                "typeString": "address[] storage ref"
                                                                            }
                                                                        },
                                                                        "id": 2838,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "length",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": null,
                                                                        "src": "19990:47:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "src": "19988:49:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "id": 3006,
                                                                "initializationExpression": {
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2829,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftHandSide": {
                                                                            "argumentTypes": null,
                                                                            "id": 2827,
                                                                            "name": "p",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2824,
                                                                            "src": "19983:1:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "nodeType": "Assignment",
                                                                        "operator": "=",
                                                                        "rightHandSide": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "30",
                                                                            "id": 2828,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "number",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "19985:1:14",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                "typeString": "int_const 0"
                                                                            },
                                                                            "value": "0"
                                                                        },
                                                                        "src": "19983:3:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "id": 2830,
                                                                    "nodeType": "ExpressionStatement",
                                                                    "src": "19983:3:14"
                                                                },
                                                                "loopExpression": {
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2841,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "UnaryOperation",
                                                                        "operator": "++",
                                                                        "prefix": false,
                                                                        "src": "20039:3:14",
                                                                        "subExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2840,
                                                                            "name": "p",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2824,
                                                                            "src": "20039:1:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "id": 2842,
                                                                    "nodeType": "ExpressionStatement",
                                                                    "src": "20039:3:14"
                                                                },
                                                                "nodeType": "ForStatement",
                                                                "src": "19979:2445:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 3011,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 3007,
                                                                            "name": "lock",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1422,
                                                                            "src": "22442:4:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                "typeString": "mapping(bytes32 => bool)"
                                                                            }
                                                                        },
                                                                        "id": 3009,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "63617368726564656d7074696f6e",
                                                                            "id": 3008,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "22447:16:14",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_9540495fb8838c0de7c9964bb1b3e6898e14147b77dc1a03fe3aaba5f1c4e43c",
                                                                                "typeString": "literal_string \"cashredemption\""
                                                                            },
                                                                            "value": "cashredemption"
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "22442:22:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "66616c7365",
                                                                        "id": 3010,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "bool",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "22467:5:14",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        },
                                                                        "value": "false"
                                                                    },
                                                                    "src": "22442:30:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "id": 3012,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "22442:30:14"
                                                            },
                                                            {
                                                                "condition": {
                                                                    "argumentTypes": null,
                                                                    "id": 3013,
                                                                    "name": "status",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2735,
                                                                    "src": "22494:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "falseBody": null,
                                                                "id": 3085,
                                                                "nodeType": "IfStatement",
                                                                "src": "22491:925:14",
                                                                "trueBody": {
                                                                    "id": 3084,
                                                                    "nodeType": "Block",
                                                                    "src": "22501:915:14",
                                                                    "statements": [
                                                                        {
                                                                            "assignments": [
                                                                                3015
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 3015,
                                                                                    "name": "proportionToRedeem",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 3084,
                                                                                    "src": "22573:26:14",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 3014,
                                                                                        "name": "uint256",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "22573:7:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 3026,
                                                                            "initialValue": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3018,
                                                                                        "name": "totalToRedeem",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2739,
                                                                                        "src": "22621:13:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 3019,
                                                                                                    "name": "issues",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 1349,
                                                                                                    "src": "22636:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 3021,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 3020,
                                                                                                    "name": "issuer",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2742,
                                                                                                    "src": "22643:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "22636:14:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 3023,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 3022,
                                                                                                "name": "bondToken",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2746,
                                                                                                "src": "22651:9:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "22636:25:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 3024,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "purchasedIssueAmount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8074,
                                                                                        "src": "22636:46:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3016,
                                                                                        "name": "FixedPoint",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 8909,
                                                                                        "src": "22602:10:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                            "typeString": "type(library FixedPoint)"
                                                                                        }
                                                                                    },
                                                                                    "id": 3017,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "divDown",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8695,
                                                                                    "src": "22602:18:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 3025,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "22602:81:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "22573:110:14"
                                                                        },
                                                                        {
                                                                            "assignments": [
                                                                                3028
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 3028,
                                                                                    "name": "amountToRedeem",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 3084,
                                                                                    "src": "22790:22:14",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 3027,
                                                                                        "name": "uint256",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "22790:7:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 3039,
                                                                            "initialValue": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 3031,
                                                                                                    "name": "issues",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 1349,
                                                                                                    "src": "22834:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 3033,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 3032,
                                                                                                    "name": "issuer",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2742,
                                                                                                    "src": "22841:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "22834:14:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 3035,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 3034,
                                                                                                "name": "bondToken",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2746,
                                                                                                "src": "22849:9:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "22834:25:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 3036,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "paidInAmount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8068,
                                                                                        "src": "22834:38:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3037,
                                                                                        "name": "proportionToRedeem",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3015,
                                                                                        "src": "22874:18:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3029,
                                                                                        "name": "FixedPoint",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 8909,
                                                                                        "src": "22815:10:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                            "typeString": "type(library FixedPoint)"
                                                                                        }
                                                                                    },
                                                                                    "id": 3030,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "mulDown",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8604,
                                                                                    "src": "22815:18:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 3038,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "22815:78:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "22790:103:14"
                                                                        },
                                                                        {
                                                                            "assignments": [
                                                                                3041
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 3041,
                                                                                    "name": "paidInCurrency",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 3084,
                                                                                    "src": "22916:22:14",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 3040,
                                                                                        "name": "bytes32",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "22916:7:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 3048,
                                                                            "initialValue": {
                                                                                "argumentTypes": null,
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 3042,
                                                                                            "name": "issues",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 1349,
                                                                                            "src": "22941:6:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                            }
                                                                                        },
                                                                                        "id": 3044,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 3043,
                                                                                            "name": "issuer",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2742,
                                                                                            "src": "22948:6:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "22941:14:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 3046,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3045,
                                                                                        "name": "bondToken",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2746,
                                                                                        "src": "22956:9:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "22941:25:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                        "typeString": "struct ViaBond.bond storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 3047,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "paidInCurrency",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8070,
                                                                                "src": "22941:40:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "22916:65:14"
                                                                        },
                                                                        {
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3050,
                                                                                        "name": "viaAddress",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2732,
                                                                                        "src": "23009:10:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3051,
                                                                                        "name": "amountToRedeem",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3028,
                                                                                        "src": "23021:14:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3052,
                                                                                        "name": "issuer",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2742,
                                                                                        "src": "23037:6:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "id": 3049,
                                                                                    "name": "send",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3359,
                                                                                    "src": "23004:4:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                                                                                        "typeString": "function (address,uint256,address)"
                                                                                    }
                                                                                },
                                                                                "id": 3053,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "23004:40:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                    "typeString": "tuple()"
                                                                                }
                                                                            },
                                                                            "id": 3054,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "23004:40:14"
                                                                        },
                                                                        {
                                                                            "condition": {
                                                                                "argumentTypes": null,
                                                                                "commonType": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                "id": 3065,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "leftExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 3055,
                                                                                    "name": "p",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2824,
                                                                                    "src": "23070:1:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "nodeType": "BinaryOperation",
                                                                                "operator": "==",
                                                                                "rightExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "id": 3064,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "leftExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 3056,
                                                                                                        "name": "issues",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 1349,
                                                                                                        "src": "23073:6:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 3058,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 3057,
                                                                                                        "name": "issuer",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2742,
                                                                                                        "src": "23080:6:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "23073:14:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 3060,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 3059,
                                                                                                    "name": "bondToken",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2746,
                                                                                                    "src": "23088:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "23073:25:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 3061,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "counterParties",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 8077,
                                                                                            "src": "23073:40:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                "typeString": "address[] storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 3062,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "length",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": null,
                                                                                        "src": "23073:47:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "nodeType": "BinaryOperation",
                                                                                    "operator": "-",
                                                                                    "rightExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "hexValue": "31",
                                                                                        "id": 3063,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": true,
                                                                                        "kind": "number",
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "Literal",
                                                                                        "src": "23121:1:14",
                                                                                        "subdenomination": null,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_rational_1_by_1",
                                                                                            "typeString": "int_const 1"
                                                                                        },
                                                                                        "value": "1"
                                                                                    },
                                                                                    "src": "23073:49:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "src": "23070:52:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "falseBody": null,
                                                                            "id": 3074,
                                                                            "nodeType": "IfStatement",
                                                                            "src": "23067:209:14",
                                                                            "trueBody": {
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 3072,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "UnaryOperation",
                                                                                    "operator": "delete",
                                                                                    "prefix": true,
                                                                                    "src": "23243:33:14",
                                                                                    "subExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "components": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 3066,
                                                                                                        "name": "issues",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 1349,
                                                                                                        "src": "23250:6:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 3068,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 3067,
                                                                                                        "name": "issuer",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2742,
                                                                                                        "src": "23257:6:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "23250:14:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 3070,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 3069,
                                                                                                    "name": "bondToken",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2746,
                                                                                                    "src": "23265:9:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "23250:25:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "id": 3071,
                                                                                        "isConstant": false,
                                                                                        "isInlineArray": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": true,
                                                                                        "nodeType": "TupleExpression",
                                                                                        "src": "23249:27:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                                        }
                                                                                    },
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_tuple$__$",
                                                                                        "typeString": "tuple()"
                                                                                    }
                                                                                },
                                                                                "id": 3073,
                                                                                "nodeType": "ExpressionStatement",
                                                                                "src": "23243:33:14"
                                                                            }
                                                                        },
                                                                        {
                                                                            "eventCall": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3076,
                                                                                        "name": "issuer",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2742,
                                                                                        "src": "23317:6:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3077,
                                                                                        "name": "bondToken",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2746,
                                                                                        "src": "23325:9:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3078,
                                                                                        "name": "redeemAmount",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2750,
                                                                                        "src": "23336:12:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3079,
                                                                                        "name": "bondTokenName",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2754,
                                                                                        "src": "23350:13:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3080,
                                                                                        "name": "amountToRedeem",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3028,
                                                                                        "src": "23365:14:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 3081,
                                                                                        "name": "paidInCurrency",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 3041,
                                                                                        "src": "23381:14:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    ],
                                                                                    "id": 3075,
                                                                                    "name": "BondRedeemed",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 1388,
                                                                                    "src": "23304:12:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                                                                                        "typeString": "function (address,address,uint256,bytes32,uint256,bytes32)"
                                                                                    }
                                                                                },
                                                                                "id": 3082,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "23304:92:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                    "typeString": "tuple()"
                                                                                }
                                                                            },
                                                                            "id": 3083,
                                                                            "nodeType": "EmitStatement",
                                                                            "src": "23299:97:14"
                                                                        }
                                                                    ]
                                                                }
                                                            }
                                                        ]
                                                    }
                                                },
                                                {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3088,
                                                        "name": "status",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2735,
                                                        "src": "23452:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "functionReturnParameters": 2335,
                                                    "id": 3089,
                                                    "nodeType": "Return",
                                                    "src": "23445:13:14"
                                                }
                                            ]
                                        }
                                    },
                                    "id": 3092,
                                    "nodeType": "IfStatement",
                                    "src": "13562:9908:14",
                                    "trueBody": {
                                        "id": 2727,
                                        "nodeType": "Block",
                                        "src": "13589:5059:14",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    2340
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 2340,
                                                        "name": "status",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 2727,
                                                        "src": "13604:11:14",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "typeName": {
                                                            "id": 2339,
                                                            "name": "bool",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "13604:4:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 2342,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 2341,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "13618:5:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "13604:19:14"
                                            },
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 2350,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2343,
                                                                    "name": "purchases",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1355,
                                                                    "src": "13713:9:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                    }
                                                                },
                                                                "id": 2345,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2344,
                                                                    "name": "payer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2325,
                                                                    "src": "13723:5:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "13713:16:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                }
                                                            },
                                                            "id": 2347,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 2346,
                                                                "name": "tokenContract",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2331,
                                                                "src": "13730:13:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "13713:31:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                "typeString": "struct ViaBond.bond storage ref"
                                                            }
                                                        },
                                                        "id": 2348,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "purchasedIssueAmount",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8074,
                                                        "src": "13713:52:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "id": 2349,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2323,
                                                        "src": "13767:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "13713:60:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "condition": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 2606,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 2603,
                                                                    "name": "payer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2325,
                                                                    "src": "17082:5:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2600,
                                                                            "name": "tokenContract",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2331,
                                                                            "src": "17056:13:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 2599,
                                                                        "name": "ViaToken",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8499,
                                                                        "src": "17047:8:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                            "typeString": "type(contract ViaToken)"
                                                                        }
                                                                    },
                                                                    "id": 2601,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "17047:23:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                        "typeString": "contract ViaToken"
                                                                    }
                                                                },
                                                                "id": 2602,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "getBalance",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 8464,
                                                                "src": "17047:34:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) external returns (uint256)"
                                                                }
                                                            },
                                                            "id": 2604,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "17047:41:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "id": 2605,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2323,
                                                            "src": "17092:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "17047:51:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "falseBody": null,
                                                    "id": 2723,
                                                    "nodeType": "IfStatement",
                                                    "src": "17044:1565:14",
                                                    "trueBody": {
                                                        "id": 2722,
                                                        "nodeType": "Block",
                                                        "src": "17099:1510:14",
                                                        "statements": [
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2611,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "UnaryOperation",
                                                                            "operator": "!",
                                                                            "prefix": true,
                                                                            "src": "17126:19:14",
                                                                            "subExpression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2608,
                                                                                    "name": "lock",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 1422,
                                                                                    "src": "17127:4:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                        "typeString": "mapping(bytes32 => bool)"
                                                                                    }
                                                                                },
                                                                                "id": 2610,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "726564656d7074696f6e",
                                                                                    "id": 2609,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "17132:12:14",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                        "typeString": "literal_string \"redemption\""
                                                                                    },
                                                                                    "value": "redemption"
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "17127:18:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        ],
                                                                        "id": 2607,
                                                                        "name": "require",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [
                                                                            13010,
                                                                            13011
                                                                        ],
                                                                        "referencedDeclaration": 13010,
                                                                        "src": "17118:7:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                                            "typeString": "function (bool) pure"
                                                                        }
                                                                    },
                                                                    "id": 2612,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "17118:28:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_tuple$__$",
                                                                        "typeString": "tuple()"
                                                                    }
                                                                },
                                                                "id": 2613,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "17118:28:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2618,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2614,
                                                                            "name": "lock",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1422,
                                                                            "src": "17165:4:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                "typeString": "mapping(bytes32 => bool)"
                                                                            }
                                                                        },
                                                                        "id": 2616,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "726564656d7074696f6e",
                                                                            "id": 2615,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "17170:12:14",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                "typeString": "literal_string \"redemption\""
                                                                            },
                                                                            "value": "redemption"
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "17165:18:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "74727565",
                                                                        "id": 2617,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "bool",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "17186:4:14",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        },
                                                                        "value": "true"
                                                                    },
                                                                    "src": "17165:25:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "id": 2619,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "17165:25:14"
                                                            },
                                                            {
                                                                "assignments": [
                                                                    2621
                                                                ],
                                                                "declarations": [
                                                                    {
                                                                        "constant": false,
                                                                        "id": 2621,
                                                                        "name": "paidInCurrency",
                                                                        "nodeType": "VariableDeclaration",
                                                                        "scope": 2722,
                                                                        "src": "17209:22:14",
                                                                        "stateVariable": false,
                                                                        "storageLocation": "default",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 2620,
                                                                            "name": "bytes32",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "17209:7:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "value": null,
                                                                        "visibility": "internal"
                                                                    }
                                                                ],
                                                                "id": 2628,
                                                                "initialValue": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2622,
                                                                                "name": "issues",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 1349,
                                                                                "src": "17234:6:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 2624,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2623,
                                                                                "name": "payer",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2325,
                                                                                "src": "17241:5:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "17234:13:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 2626,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2625,
                                                                            "name": "tokenContract",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2331,
                                                                            "src": "17248:13:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "17234:28:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                        }
                                                                    },
                                                                    "id": 2627,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "paidInCurrency",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 8070,
                                                                    "src": "17234:43:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "nodeType": "VariableDeclarationStatement",
                                                                "src": "17209:68:14"
                                                            },
                                                            {
                                                                "assignments": [
                                                                    2630
                                                                ],
                                                                "declarations": [
                                                                    {
                                                                        "constant": false,
                                                                        "id": 2630,
                                                                        "name": "uncumberedAmount",
                                                                        "nodeType": "VariableDeclaration",
                                                                        "scope": 2722,
                                                                        "src": "17390:24:14",
                                                                        "stateVariable": false,
                                                                        "storageLocation": "default",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 2629,
                                                                            "name": "uint256",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "17390:7:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "value": null,
                                                                        "visibility": "internal"
                                                                    }
                                                                ],
                                                                "id": 2650,
                                                                "initialValue": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2635,
                                                                                    "name": "amount",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2323,
                                                                                    "src": "17455:6:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2636,
                                                                                                "name": "issues",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 1349,
                                                                                                "src": "17463:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                }
                                                                                            },
                                                                                            "id": 2638,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2637,
                                                                                                "name": "payer",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2325,
                                                                                                "src": "17470:5:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "17463:13:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2640,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2639,
                                                                                            "name": "tokenContract",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2331,
                                                                                            "src": "17477:13:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "17463:28:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                                        }
                                                                                    },
                                                                                    "id": 2641,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "parValue",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8066,
                                                                                    "src": "17463:37:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2633,
                                                                                    "name": "FixedPoint",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "src": "17436:10:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                        "typeString": "type(library FixedPoint)"
                                                                                    }
                                                                                },
                                                                                "id": 2634,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "divDown",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8695,
                                                                                "src": "17436:18:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                }
                                                                            },
                                                                            "id": 2642,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "17436:65:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2643,
                                                                                        "name": "issues",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 1349,
                                                                                        "src": "17503:6:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                        }
                                                                                    },
                                                                                    "id": 2645,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2644,
                                                                                        "name": "payer",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2325,
                                                                                        "src": "17510:5:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "17503:13:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                    }
                                                                                },
                                                                                "id": 2647,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2646,
                                                                                    "name": "tokenContract",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2331,
                                                                                    "src": "17517:13:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "17503:28:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                }
                                                                            },
                                                                            "id": 2648,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "paidInAmount",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8068,
                                                                            "src": "17503:41:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2631,
                                                                            "name": "FixedPoint",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8909,
                                                                            "src": "17417:10:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                "typeString": "type(library FixedPoint)"
                                                                            }
                                                                        },
                                                                        "id": 2632,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "mulDown",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 8604,
                                                                        "src": "17417:18:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 2649,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "17417:128:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "VariableDeclarationStatement",
                                                                "src": "17390:155:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2657,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "id": 2651,
                                                                        "name": "uncumberedAmount",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2630,
                                                                        "src": "17610:16:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 2653,
                                                                                "name": "uncumberedAmount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2630,
                                                                                "src": "17636:16:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 2654,
                                                                                "name": "paidInCurrency",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2621,
                                                                                "src": "17654:14:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "726564656d7074696f6e",
                                                                                "id": 2655,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "string",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "17670:12:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                    "typeString": "literal_string \"redemption\""
                                                                                },
                                                                                "value": "redemption"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                    "typeString": "literal_string \"redemption\""
                                                                                }
                                                                            ],
                                                                            "id": 2652,
                                                                            "name": "payFee",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 3468,
                                                                            "src": "17629:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,bytes32,bytes32) returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 2656,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "17629:54:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "src": "17610:73:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "id": 2658,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "17610:73:14"
                                                            },
                                                            {
                                                                "assignments": [
                                                                    2660
                                                                ],
                                                                "declarations": [
                                                                    {
                                                                        "constant": false,
                                                                        "id": 2660,
                                                                        "name": "viaAddress",
                                                                        "nodeType": "VariableDeclaration",
                                                                        "scope": 2722,
                                                                        "src": "17791:18:14",
                                                                        "stateVariable": false,
                                                                        "storageLocation": "default",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 2659,
                                                                            "name": "address",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "17791:7:14",
                                                                            "stateMutability": "nonpayable",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "value": null,
                                                                        "visibility": "internal"
                                                                    }
                                                                ],
                                                                "id": 2661,
                                                                "initialValue": null,
                                                                "nodeType": "VariableDeclarationStatement",
                                                                "src": "17791:18:14"
                                                            },
                                                            {
                                                                "condition": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2664,
                                                                            "name": "paidInCurrency",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2621,
                                                                            "src": "17860:14:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2662,
                                                                            "name": "factory",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1333,
                                                                            "src": "17831:7:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                "typeString": "contract ViaFactory"
                                                                            }
                                                                        },
                                                                        "id": 2663,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "checkSupportForToken",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 8394,
                                                                        "src": "17831:28:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                                            "typeString": "function (bytes32) view external returns (bool)"
                                                                        }
                                                                    },
                                                                    "id": 2665,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "17831:44:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "falseBody": {
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2679,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftHandSide": {
                                                                            "argumentTypes": null,
                                                                            "id": 2673,
                                                                            "name": "viaAddress",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2660,
                                                                            "src": "17996:10:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "nodeType": "Assignment",
                                                                        "operator": "=",
                                                                        "rightHandSide": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "56696143617368",
                                                                                    "id": 2676,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "18027:9:14",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                        "typeString": "literal_string \"ViaCash\""
                                                                                    },
                                                                                    "value": "ViaCash"
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2677,
                                                                                    "name": "paidInCurrency",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2621,
                                                                                    "src": "18038:14:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                        "typeString": "literal_string \"ViaCash\""
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2674,
                                                                                    "name": "factory",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "src": "18009:7:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                        "typeString": "contract ViaFactory"
                                                                                    }
                                                                                },
                                                                                "id": 2675,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "getIssuer",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8258,
                                                                                "src": "18009:17:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                                    "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                                }
                                                                            },
                                                                            "id": 2678,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "18009:44:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "src": "17996:57:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "id": 2680,
                                                                    "nodeType": "ExpressionStatement",
                                                                    "src": "17996:57:14"
                                                                },
                                                                "id": 2681,
                                                                "nodeType": "IfStatement",
                                                                "src": "17828:225:14",
                                                                "trueBody": {
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 2671,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftHandSide": {
                                                                            "argumentTypes": null,
                                                                            "id": 2666,
                                                                            "name": "viaAddress",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2660,
                                                                            "src": "17898:10:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "nodeType": "Assignment",
                                                                        "operator": "=",
                                                                        "rightHandSide": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2669,
                                                                                    "name": "paidInCurrency",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2621,
                                                                                    "src": "17936:14:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_bytes32",
                                                                                        "typeString": "bytes32"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2667,
                                                                                    "name": "factory",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "src": "17911:7:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                        "typeString": "contract ViaFactory"
                                                                                    }
                                                                                },
                                                                                "id": 2668,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "getCurrencyToken",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8401,
                                                                                "src": "17911:24:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                                                    "typeString": "function (bytes32) view external returns (address)"
                                                                                }
                                                                            },
                                                                            "id": 2670,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "17911:40:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "src": "17898:53:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "id": 2672,
                                                                    "nodeType": "ExpressionStatement",
                                                                    "src": "17898:53:14"
                                                                }
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2683,
                                                                            "name": "viaAddress",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2660,
                                                                            "src": "18077:10:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2684,
                                                                            "name": "uncumberedAmount",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2630,
                                                                            "src": "18089:16:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2685,
                                                                            "name": "payer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2325,
                                                                            "src": "18107:5:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 2682,
                                                                        "name": "send",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3359,
                                                                        "src": "18072:4:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                                                                            "typeString": "function (address,uint256,address)"
                                                                        }
                                                                    },
                                                                    "id": 2686,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "18072:41:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_tuple$__$",
                                                                        "typeString": "tuple()"
                                                                    }
                                                                },
                                                                "id": 2687,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "18072:41:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2692,
                                                                            "name": "amount",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2323,
                                                                            "src": "18221:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2689,
                                                                                    "name": "tokenContract",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2331,
                                                                                    "src": "18193:13:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                ],
                                                                                "id": 2688,
                                                                                "name": "ViaToken",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8499,
                                                                                "src": "18184:8:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                                    "typeString": "type(contract ViaToken)"
                                                                                }
                                                                            },
                                                                            "id": 2690,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "typeConversion",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "18184:23:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                                "typeString": "contract ViaToken"
                                                                            }
                                                                        },
                                                                        "id": 2691,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "reduceSupply",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 8450,
                                                                        "src": "18184:36:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                                                            "typeString": "function (uint256) external"
                                                                        }
                                                                    },
                                                                    "id": 2693,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "18184:44:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_tuple$__$",
                                                                        "typeString": "tuple()"
                                                                    }
                                                                },
                                                                "id": 2694,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "18184:44:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2699,
                                                                            "name": "payer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2325,
                                                                            "src": "18356:5:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2700,
                                                                            "name": "amount",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2323,
                                                                            "src": "18363:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2696,
                                                                                    "name": "tokenContract",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2331,
                                                                                    "src": "18327:13:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                ],
                                                                                "id": 2695,
                                                                                "name": "ViaToken",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8499,
                                                                                "src": "18318:8:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                                    "typeString": "type(contract ViaToken)"
                                                                                }
                                                                            },
                                                                            "id": 2697,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "typeConversion",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "18318:23:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                                "typeString": "contract ViaToken"
                                                                            }
                                                                        },
                                                                        "id": 2698,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "reduceBalance",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 8457,
                                                                        "src": "18318:37:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                            "typeString": "function (address,uint256) external"
                                                                        }
                                                                    },
                                                                    "id": 2701,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "18318:52:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_tuple$__$",
                                                                        "typeString": "tuple()"
                                                                    }
                                                                },
                                                                "id": 2702,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "18318:52:14"
                                                            },
                                                            {
                                                                "eventCall": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2704,
                                                                            "name": "payer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2325,
                                                                            "src": "18441:5:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2705,
                                                                            "name": "tokenContract",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2331,
                                                                            "src": "18448:13:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2706,
                                                                            "name": "amount",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2323,
                                                                            "src": "18463:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2707,
                                                                            "name": "tokenName",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2327,
                                                                            "src": "18471:9:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2708,
                                                                            "name": "uncumberedAmount",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2630,
                                                                            "src": "18482:16:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 2709,
                                                                            "name": "paidInCurrency",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2621,
                                                                            "src": "18500:14:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        ],
                                                                        "id": 2703,
                                                                        "name": "BondRedeemed",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 1388,
                                                                        "src": "18428:12:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                                                                            "typeString": "function (address,address,uint256,bytes32,uint256,bytes32)"
                                                                        }
                                                                    },
                                                                    "id": 2710,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "18428:87:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_tuple$__$",
                                                                        "typeString": "tuple()"
                                                                    }
                                                                },
                                                                "id": 2711,
                                                                "nodeType": "EmitStatement",
                                                                "src": "18423:92:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2716,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2712,
                                                                            "name": "lock",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 1422,
                                                                            "src": "18534:4:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                "typeString": "mapping(bytes32 => bool)"
                                                                            }
                                                                        },
                                                                        "id": 2714,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "726564656d7074696f6e",
                                                                            "id": 2713,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "18539:12:14",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                "typeString": "literal_string \"redemption\""
                                                                            },
                                                                            "value": "redemption"
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "18534:18:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "66616c7365",
                                                                        "id": 2715,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "bool",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "18555:5:14",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        },
                                                                        "value": "false"
                                                                    },
                                                                    "src": "18534:26:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "id": 2717,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "18534:26:14"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 2720,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "id": 2718,
                                                                        "name": "status",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2340,
                                                                        "src": "18580:6:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "74727565",
                                                                        "id": 2719,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "bool",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "18589:4:14",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        },
                                                                        "value": "true"
                                                                    },
                                                                    "src": "18580:13:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "id": 2721,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "18580:13:14"
                                                            }
                                                        ]
                                                    }
                                                },
                                                "id": 2724,
                                                "nodeType": "IfStatement",
                                                "src": "13710:4899:14",
                                                "trueBody": {
                                                    "id": 2598,
                                                    "nodeType": "Block",
                                                    "src": "13774:3135:14",
                                                    "statements": [
                                                        {
                                                            "condition": {
                                                                "argumentTypes": null,
                                                                "commonType": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                "id": 2358,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2351,
                                                                                "name": "purchases",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 1355,
                                                                                "src": "13848:9:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 2353,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2352,
                                                                                "name": "payer",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2325,
                                                                                "src": "13858:5:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "13848:16:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 2355,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2354,
                                                                            "name": "tokenContract",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2331,
                                                                            "src": "13865:13:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "13848:31:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                        }
                                                                    },
                                                                    "id": 2356,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "timeIssuedOrSubscribed",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 8072,
                                                                    "src": "13848:54:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": ">",
                                                                "rightExpression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "30",
                                                                    "id": 2357,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "13905:1:14",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "src": "13848:58:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "falseBody": null,
                                                            "id": 2597,
                                                            "nodeType": "IfStatement",
                                                            "src": "13845:3049:14",
                                                            "trueBody": {
                                                                "id": 2596,
                                                                "nodeType": "Block",
                                                                "src": "13907:2987:14",
                                                                "statements": [
                                                                    {
                                                                        "assignments": [
                                                                            2360
                                                                        ],
                                                                        "declarations": [
                                                                            {
                                                                                "constant": false,
                                                                                "id": 2360,
                                                                                "name": "issuer",
                                                                                "nodeType": "VariableDeclaration",
                                                                                "scope": 2596,
                                                                                "src": "13930:14:14",
                                                                                "stateVariable": false,
                                                                                "storageLocation": "default",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                "typeName": {
                                                                                    "id": 2359,
                                                                                    "name": "address",
                                                                                    "nodeType": "ElementaryTypeName",
                                                                                    "src": "13930:7:14",
                                                                                    "stateMutability": "nonpayable",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "value": null,
                                                                                "visibility": "internal"
                                                                            }
                                                                        ],
                                                                        "id": 2369,
                                                                        "initialValue": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "baseExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2361,
                                                                                            "name": "purchases",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 1355,
                                                                                            "src": "13947:9:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                            }
                                                                                        },
                                                                                        "id": 2363,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2362,
                                                                                            "name": "payer",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2325,
                                                                                            "src": "13957:5:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "13947:16:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2365,
                                                                                    "indexExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2364,
                                                                                        "name": "tokenContract",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2331,
                                                                                        "src": "13964:13:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "13947:31:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                        "typeString": "struct ViaBond.bond storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 2366,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "counterParties",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8077,
                                                                                "src": "13947:46:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                    "typeString": "address[] storage ref"
                                                                                }
                                                                            },
                                                                            "id": 2368,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "30",
                                                                                "id": 2367,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "13994:1:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                    "typeString": "int_const 0"
                                                                                },
                                                                                "value": "0"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "13947:49:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "nodeType": "VariableDeclarationStatement",
                                                                        "src": "13930:66:14"
                                                                    },
                                                                    {
                                                                        "assignments": [
                                                                            2371
                                                                        ],
                                                                        "declarations": [
                                                                            {
                                                                                "constant": false,
                                                                                "id": 2371,
                                                                                "name": "redemptionAmount",
                                                                                "nodeType": "VariableDeclaration",
                                                                                "scope": 2596,
                                                                                "src": "14077:24:14",
                                                                                "stateVariable": false,
                                                                                "storageLocation": "default",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                "typeName": {
                                                                                    "id": 2370,
                                                                                    "name": "uint256",
                                                                                    "nodeType": "ElementaryTypeName",
                                                                                    "src": "14077:7:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "value": null,
                                                                                "visibility": "internal"
                                                                            }
                                                                        ],
                                                                        "id": 2405,
                                                                        "initialValue": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2376,
                                                                                            "name": "amount",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2323,
                                                                                            "src": "14142:6:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "argumentTypes": null,
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2377,
                                                                                                        "name": "issues",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 1349,
                                                                                                        "src": "14150:6:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2386,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2378,
                                                                                                                        "name": "purchases",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 1355,
                                                                                                                        "src": "14157:9:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 2380,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2379,
                                                                                                                        "name": "payer",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 2325,
                                                                                                                        "src": "14167:5:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "14157:16:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2382,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2381,
                                                                                                                    "name": "tokenContract",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                    "src": "14174:13:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "14157:31:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2383,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "counterParties",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8077,
                                                                                                            "src": "14157:46:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                                "typeString": "address[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2385,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexValue": "30",
                                                                                                            "id": 2384,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "kind": "number",
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "Literal",
                                                                                                            "src": "14204:1:14",
                                                                                                            "subdenomination": null,
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                                                "typeString": "int_const 0"
                                                                                                            },
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "14157:49:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14150:57:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2388,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2387,
                                                                                                    "name": "tokenContract",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2331,
                                                                                                    "src": "14208:13:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14150:72:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 2389,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "parValue",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 8066,
                                                                                            "src": "14150:81:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": [
                                                                                            {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2374,
                                                                                            "name": "FixedPoint",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 8909,
                                                                                            "src": "14123:10:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                                "typeString": "type(library FixedPoint)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2375,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "divDown",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8695,
                                                                                        "src": "14123:18:14",
                                                                                        "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": "14123:109:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2391,
                                                                                                "name": "issues",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 1349,
                                                                                                "src": "14284:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                }
                                                                                            },
                                                                                            "id": 2400,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2392,
                                                                                                                "name": "purchases",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 1355,
                                                                                                                "src": "14291:9:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2394,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2393,
                                                                                                                "name": "payer",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2325,
                                                                                                                "src": "14301:5:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "14291:16:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2396,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2395,
                                                                                                            "name": "tokenContract",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2331,
                                                                                                            "src": "14308:13:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "14291:31:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2397,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "counterParties",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 8077,
                                                                                                    "src": "14291:46:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                        "typeString": "address[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2399,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexValue": "30",
                                                                                                    "id": 2398,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "number",
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "Literal",
                                                                                                    "src": "14338:1:14",
                                                                                                    "subdenomination": null,
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                                                        "typeString": "int_const 0"
                                                                                                    },
                                                                                                    "value": "0"
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14291:49:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "14284:57:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2402,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2401,
                                                                                            "name": "tokenContract",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2331,
                                                                                            "src": "14342:13:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "14284:72:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                            "typeString": "struct ViaBond.bond storage ref"
                                                                                        }
                                                                                    },
                                                                                    "id": 2403,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "paidInAmount",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8068,
                                                                                    "src": "14284:85:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2372,
                                                                                    "name": "FixedPoint",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "src": "14104:10:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                        "typeString": "type(library FixedPoint)"
                                                                                    }
                                                                                },
                                                                                "id": 2373,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "mulDown",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8604,
                                                                                "src": "14104:18:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                }
                                                                            },
                                                                            "id": 2404,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "14104:266:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "nodeType": "VariableDeclarationStatement",
                                                                        "src": "14077:293:14"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2434,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "id": 2406,
                                                                                "name": "redemptionAmount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2371,
                                                                                "src": "14460:16:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2409,
                                                                                        "name": "redemptionAmount",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2371,
                                                                                        "src": "14498:16:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2414,
                                                                                                        "name": "now",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 13009,
                                                                                                        "src": "14586:3:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2415,
                                                                                                                    "name": "purchases",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                    "src": "14591:9:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2417,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2416,
                                                                                                                    "name": "payer",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                    "src": "14601:5:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "14591:16:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2419,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2418,
                                                                                                                "name": "tokenContract",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2331,
                                                                                                                "src": "14608:13:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "14591:31:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2420,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "timeIssuedOrSubscribed",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 8072,
                                                                                                        "src": "14591:54:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2412,
                                                                                                        "name": "Math",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10483,
                                                                                                        "src": "14577:4:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                            "typeString": "type(library Math)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2413,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "sub",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "src": "14577:8:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2421,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "14577:69:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2424,
                                                                                                        "name": "now",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 13009,
                                                                                                        "src": "14698:3:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2425,
                                                                                                                    "name": "issues",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                    "src": "14703:6:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2427,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2426,
                                                                                                                    "name": "issuer",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2360,
                                                                                                                    "src": "14710:6:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "14703:14:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2429,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2428,
                                                                                                                "name": "tokenContract",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2331,
                                                                                                                "src": "14718:13:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "14703:29:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2430,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "timeIssuedOrSubscribed",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 8072,
                                                                                                        "src": "14703:52:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "expression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2422,
                                                                                                        "name": "Math",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10483,
                                                                                                        "src": "14689:4:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                                            "typeString": "type(library Math)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2423,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "memberName": "sub",
                                                                                                    "nodeType": "MemberAccess",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "src": "14689:8:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2431,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "14689:67:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2410,
                                                                                                "name": "FixedPoint",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 8909,
                                                                                                "src": "14516:10:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                                    "typeString": "type(library FixedPoint)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2411,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "divDown",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 8695,
                                                                                            "src": "14516:18:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2432,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "14516:241:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2407,
                                                                                        "name": "FixedPoint",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 8909,
                                                                                        "src": "14479:10:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                            "typeString": "type(library FixedPoint)"
                                                                                        }
                                                                                    },
                                                                                    "id": 2408,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "mulDown",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 8604,
                                                                                    "src": "14479:18:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 2433,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "14479:279:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "14460:298:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 2435,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "14460:298:14"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2440,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "UnaryOperation",
                                                                                    "operator": "!",
                                                                                    "prefix": true,
                                                                                    "src": "14789:20:14",
                                                                                    "subExpression": {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2437,
                                                                                            "name": "lock",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 1422,
                                                                                            "src": "14790:4:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                                "typeString": "mapping(bytes32 => bool)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2439,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "hexValue": "6c69717569646174696f6e",
                                                                                            "id": 2438,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "kind": "string",
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "Literal",
                                                                                            "src": "14795:13:14",
                                                                                            "subdenomination": null,
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_stringliteral_a84eeb19a78840384f41a4e6668a5cb48e920c562583aaef18cba3369ac852c9",
                                                                                                "typeString": "literal_string \"liquidation\""
                                                                                            },
                                                                                            "value": "liquidation"
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "14790:19:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_bool",
                                                                                        "typeString": "bool"
                                                                                    }
                                                                                ],
                                                                                "id": 2436,
                                                                                "name": "require",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [
                                                                                    13010,
                                                                                    13011
                                                                                ],
                                                                                "referencedDeclaration": 13010,
                                                                                "src": "14781:7:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                                                    "typeString": "function (bool) pure"
                                                                                }
                                                                            },
                                                                            "id": 2441,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "14781:29:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                "typeString": "tuple()"
                                                                            }
                                                                        },
                                                                        "id": 2442,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "14781:29:14"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2447,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2443,
                                                                                    "name": "lock",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 1422,
                                                                                    "src": "14833:4:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                        "typeString": "mapping(bytes32 => bool)"
                                                                                    }
                                                                                },
                                                                                "id": 2445,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "6c69717569646174696f6e",
                                                                                    "id": 2444,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "14838:13:14",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_a84eeb19a78840384f41a4e6668a5cb48e920c562583aaef18cba3369ac852c9",
                                                                                        "typeString": "literal_string \"liquidation\""
                                                                                    },
                                                                                    "value": "liquidation"
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "14833:19:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "74727565",
                                                                                "id": 2446,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "bool",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "14855:4:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "value": "true"
                                                                            },
                                                                            "src": "14833:26:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 2448,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "14833:26:14"
                                                                    },
                                                                    {
                                                                        "condition": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "id": 2451,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 2449,
                                                                                "name": "redemptionAmount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2371,
                                                                                "src": "14905:16:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "BinaryOperation",
                                                                            "operator": ">=",
                                                                            "rightExpression": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "30",
                                                                                "id": 2450,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "14925:1:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                    "typeString": "int_const 0"
                                                                                },
                                                                                "value": "0"
                                                                            },
                                                                            "src": "14905:21:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "falseBody": null,
                                                                        "id": 2585,
                                                                        "nodeType": "IfStatement",
                                                                        "src": "14902:1887:14",
                                                                        "trueBody": {
                                                                            "id": 2584,
                                                                            "nodeType": "Block",
                                                                            "src": "14927:1862:14",
                                                                            "statements": [
                                                                                {
                                                                                    "assignments": [
                                                                                        2453
                                                                                    ],
                                                                                    "declarations": [
                                                                                        {
                                                                                            "constant": false,
                                                                                            "id": 2453,
                                                                                            "name": "paidInCurrency",
                                                                                            "nodeType": "VariableDeclaration",
                                                                                            "scope": 2584,
                                                                                            "src": "14954:22:14",
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            },
                                                                                            "typeName": {
                                                                                                "id": 2452,
                                                                                                "name": "bytes32",
                                                                                                "nodeType": "ElementaryTypeName",
                                                                                                "src": "14954:7:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        }
                                                                                    ],
                                                                                    "id": 2467,
                                                                                    "initialValue": {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2454,
                                                                                                    "name": "issues",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 1349,
                                                                                                    "src": "14979:6:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2463,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "expression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "baseExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2455,
                                                                                                                    "name": "purchases",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                    "src": "14986:9:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2457,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2456,
                                                                                                                    "name": "payer",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                    "src": "14996:5:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "14986:16:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2459,
                                                                                                            "indexExpression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2458,
                                                                                                                "name": "tokenContract",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2331,
                                                                                                                "src": "15003:13:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "nodeType": "IndexAccess",
                                                                                                            "src": "14986:31:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2460,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "memberName": "counterParties",
                                                                                                        "nodeType": "MemberAccess",
                                                                                                        "referencedDeclaration": 8077,
                                                                                                        "src": "14986:46:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                            "typeString": "address[] storage ref"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2462,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "hexValue": "30",
                                                                                                        "id": 2461,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "kind": "number",
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "Literal",
                                                                                                        "src": "15033:1:14",
                                                                                                        "subdenomination": null,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                            "typeString": "int_const 0"
                                                                                                        },
                                                                                                        "value": "0"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14986:49:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14979:57:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2465,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2464,
                                                                                                "name": "tokenContract",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2331,
                                                                                                "src": "15037:13:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "14979:72:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 2466,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "paidInCurrency",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 8070,
                                                                                        "src": "14979:87:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "nodeType": "VariableDeclarationStatement",
                                                                                    "src": "14954:112:14"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2474,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftHandSide": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2468,
                                                                                            "name": "redemptionAmount",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2371,
                                                                                            "src": "15147:16:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "Assignment",
                                                                                        "operator": "=",
                                                                                        "rightHandSide": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2470,
                                                                                                    "name": "redemptionAmount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2371,
                                                                                                    "src": "15173:16:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2471,
                                                                                                    "name": "paidInCurrency",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2453,
                                                                                                    "src": "15191:14:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    }
                                                                                                },
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexValue": "726564656d7074696f6e",
                                                                                                    "id": 2472,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "string",
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "Literal",
                                                                                                    "src": "15207:12:14",
                                                                                                    "subdenomination": null,
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                                        "typeString": "literal_string \"redemption\""
                                                                                                    },
                                                                                                    "value": "redemption"
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": [
                                                                                                    {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    },
                                                                                                    {
                                                                                                        "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                                        "typeString": "literal_string \"redemption\""
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2469,
                                                                                                "name": "payFee",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 3468,
                                                                                                "src": "15166:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                                                                                                    "typeString": "function (uint256,bytes32,bytes32) returns (uint256)"
                                                                                                }
                                                                                            },
                                                                                            "id": 2473,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "kind": "functionCall",
                                                                                            "lValueRequested": false,
                                                                                            "names": [],
                                                                                            "nodeType": "FunctionCall",
                                                                                            "src": "15166:54:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "src": "15147:73:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "id": 2475,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "15147:73:14"
                                                                                },
                                                                                {
                                                                                    "assignments": [
                                                                                        2477
                                                                                    ],
                                                                                    "declarations": [
                                                                                        {
                                                                                            "constant": false,
                                                                                            "id": 2477,
                                                                                            "name": "viaAddress",
                                                                                            "nodeType": "VariableDeclaration",
                                                                                            "scope": 2584,
                                                                                            "src": "15247:18:14",
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            },
                                                                                            "typeName": {
                                                                                                "id": 2476,
                                                                                                "name": "address",
                                                                                                "nodeType": "ElementaryTypeName",
                                                                                                "src": "15247:7:14",
                                                                                                "stateMutability": "nonpayable",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        }
                                                                                    ],
                                                                                    "id": 2478,
                                                                                    "initialValue": null,
                                                                                    "nodeType": "VariableDeclarationStatement",
                                                                                    "src": "15247:18:14"
                                                                                },
                                                                                {
                                                                                    "condition": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2481,
                                                                                                "name": "paidInCurrency",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2453,
                                                                                                "src": "15324:14:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2479,
                                                                                                "name": "factory",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 1333,
                                                                                                "src": "15295:7:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                    "typeString": "contract ViaFactory"
                                                                                                }
                                                                                            },
                                                                                            "id": 2480,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "checkSupportForToken",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 8394,
                                                                                            "src": "15295:28:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                                                                "typeString": "function (bytes32) view external returns (bool)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2482,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "15295:44:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "falseBody": {
                                                                                        "id": 2499,
                                                                                        "nodeType": "Block",
                                                                                        "src": "15482:116:14",
                                                                                        "statements": [
                                                                                            {
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2497,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "leftHandSide": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2491,
                                                                                                        "name": "viaAddress",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2477,
                                                                                                        "src": "15513:10:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "Assignment",
                                                                                                    "operator": "=",
                                                                                                    "rightHandSide": {
                                                                                                        "argumentTypes": null,
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "hexValue": "56696143617368",
                                                                                                                "id": 2494,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": true,
                                                                                                                "kind": "string",
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "Literal",
                                                                                                                "src": "15544:9:14",
                                                                                                                "subdenomination": null,
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                                },
                                                                                                                "value": "ViaCash"
                                                                                                            },
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2495,
                                                                                                                "name": "paidInCurrency",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2453,
                                                                                                                "src": "15555:14:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2492,
                                                                                                                "name": "factory",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 1333,
                                                                                                                "src": "15526:7:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                    "typeString": "contract ViaFactory"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2493,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "getIssuer",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8258,
                                                                                                            "src": "15526:17:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                                                                "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2496,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "15526:44:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "src": "15513:57:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2498,
                                                                                                "nodeType": "ExpressionStatement",
                                                                                                "src": "15513:57:14"
                                                                                            }
                                                                                        ]
                                                                                    },
                                                                                    "id": 2500,
                                                                                    "nodeType": "IfStatement",
                                                                                    "src": "15292:306:14",
                                                                                    "trueBody": {
                                                                                        "id": 2490,
                                                                                        "nodeType": "Block",
                                                                                        "src": "15340:112:14",
                                                                                        "statements": [
                                                                                            {
                                                                                                "expression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2488,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "leftHandSide": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2483,
                                                                                                        "name": "viaAddress",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2477,
                                                                                                        "src": "15371:10:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "Assignment",
                                                                                                    "operator": "=",
                                                                                                    "rightHandSide": {
                                                                                                        "argumentTypes": null,
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2486,
                                                                                                                "name": "paidInCurrency",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2453,
                                                                                                                "src": "15409:14:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2484,
                                                                                                                "name": "factory",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 1333,
                                                                                                                "src": "15384:7:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                                                                    "typeString": "contract ViaFactory"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2485,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "getCurrencyToken",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8401,
                                                                                                            "src": "15384:24:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                                                                                "typeString": "function (bytes32) view external returns (address)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2487,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "15384:40:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "src": "15371:53:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2489,
                                                                                                "nodeType": "ExpressionStatement",
                                                                                                "src": "15371:53:14"
                                                                                            }
                                                                                        ]
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2502,
                                                                                                "name": "viaAddress",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2477,
                                                                                                "src": "15629:10:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2503,
                                                                                                "name": "redemptionAmount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2371,
                                                                                                "src": "15641:16:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2504,
                                                                                                "name": "payer",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2325,
                                                                                                "src": "15659:5:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "id": 2501,
                                                                                            "name": "send",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 3359,
                                                                                            "src": "15624:4:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                                                                                                "typeString": "function (address,uint256,address)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2505,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "15624:41:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 2506,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "15624:41:14"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2511,
                                                                                                "name": "amount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2323,
                                                                                                "src": "15789:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2508,
                                                                                                        "name": "tokenContract",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2331,
                                                                                                        "src": "15761:13:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 2507,
                                                                                                    "name": "ViaToken",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 8499,
                                                                                                    "src": "15752:8:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                                                        "typeString": "type(contract ViaToken)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2509,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "typeConversion",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "15752:23:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                                                    "typeString": "contract ViaToken"
                                                                                                }
                                                                                            },
                                                                                            "id": 2510,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "reduceSupply",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 8450,
                                                                                            "src": "15752:36:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                                                                                "typeString": "function (uint256) external"
                                                                                            }
                                                                                        },
                                                                                        "id": 2512,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "15752:44:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 2513,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "15752:44:14"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2518,
                                                                                                "name": "payer",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2325,
                                                                                                "src": "15948:5:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2519,
                                                                                                "name": "amount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2323,
                                                                                                "src": "15955:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2515,
                                                                                                        "name": "tokenContract",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2331,
                                                                                                        "src": "15919:13:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 2514,
                                                                                                    "name": "ViaToken",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 8499,
                                                                                                    "src": "15910:8:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                                                        "typeString": "type(contract ViaToken)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2516,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "typeConversion",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "15910:23:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                                                    "typeString": "contract ViaToken"
                                                                                                }
                                                                                            },
                                                                                            "id": 2517,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "reduceBalance",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 8457,
                                                                                            "src": "15910:37:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                                                "typeString": "function (address,uint256) external"
                                                                                            }
                                                                                        },
                                                                                        "id": 2520,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "15910:52:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 2521,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "15910:52:14"
                                                                                },
                                                                                {
                                                                                    "eventCall": {
                                                                                        "argumentTypes": null,
                                                                                        "arguments": [
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2523,
                                                                                                "name": "payer",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2325,
                                                                                                "src": "16051:5:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2524,
                                                                                                "name": "tokenContract",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2331,
                                                                                                "src": "16058:13:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2525,
                                                                                                "name": "amount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2323,
                                                                                                "src": "16073:6:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2526,
                                                                                                "name": "tokenName",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2327,
                                                                                                "src": "16081:9:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2527,
                                                                                                "name": "redemptionAmount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2371,
                                                                                                "src": "16092:16:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2528,
                                                                                                "name": "paidInCurrency",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2453,
                                                                                                "src": "16110:14:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            ],
                                                                                            "id": 2522,
                                                                                            "name": "BondLiquidated",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 1418,
                                                                                            "src": "16036:14:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                                                                                                "typeString": "function (address,address,uint256,bytes32,uint256,bytes32)"
                                                                                            }
                                                                                        },
                                                                                        "id": 2529,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "16036:89:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 2530,
                                                                                    "nodeType": "EmitStatement",
                                                                                    "src": "16031:94:14"
                                                                                },
                                                                                {
                                                                                    "assignments": [
                                                                                        2532
                                                                                    ],
                                                                                    "declarations": [
                                                                                        {
                                                                                            "constant": false,
                                                                                            "id": 2532,
                                                                                            "name": "length",
                                                                                            "nodeType": "VariableDeclaration",
                                                                                            "scope": 2584,
                                                                                            "src": "16239:11:14",
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "typeName": {
                                                                                                "id": 2531,
                                                                                                "name": "uint",
                                                                                                "nodeType": "ElementaryTypeName",
                                                                                                "src": "16239:4:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        }
                                                                                    ],
                                                                                    "id": 2540,
                                                                                    "initialValue": {
                                                                                        "argumentTypes": null,
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "expression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2533,
                                                                                                        "name": "issues",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 1349,
                                                                                                        "src": "16253:6:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2535,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2534,
                                                                                                        "name": "issuer",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2360,
                                                                                                        "src": "16260:6:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "16253:14:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 2537,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 2536,
                                                                                                    "name": "tokenContract",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 2331,
                                                                                                    "src": "16268:13:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "16253:29:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 2538,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "counterParties",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 8077,
                                                                                            "src": "16253:44:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                "typeString": "address[] storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 2539,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "length",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": null,
                                                                                        "src": "16253:51:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "nodeType": "VariableDeclarationStatement",
                                                                                    "src": "16239:65:14"
                                                                                },
                                                                                {
                                                                                    "body": {
                                                                                        "id": 2574,
                                                                                        "nodeType": "Block",
                                                                                        "src": "16359:258:14",
                                                                                        "statements": [
                                                                                            {
                                                                                                "condition": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_address",
                                                                                                        "typeString": "address"
                                                                                                    },
                                                                                                    "id": 2560,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "leftExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "baseExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "baseExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2551,
                                                                                                                        "name": "issues",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 1349,
                                                                                                                        "src": "16393:6:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                            "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 2553,
                                                                                                                    "indexExpression": {
                                                                                                                        "argumentTypes": null,
                                                                                                                        "id": 2552,
                                                                                                                        "name": "issuer",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 2360,
                                                                                                                        "src": "16400:6:14",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "16393:14:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                        "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 2555,
                                                                                                                "indexExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "id": 2554,
                                                                                                                    "name": "tokenContract",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                    "src": "16408:13:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "IndexAccess",
                                                                                                                "src": "16393:29:14",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                    "typeString": "struct ViaBond.bond storage ref"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2556,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "counterParties",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 8077,
                                                                                                            "src": "16393:44:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                                "typeString": "address[] storage ref"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2558,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2557,
                                                                                                            "name": "p",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2542,
                                                                                                            "src": "16438:1:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "16393:47:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "BinaryOperation",
                                                                                                    "operator": "==",
                                                                                                    "rightExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2559,
                                                                                                        "name": "payer",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2325,
                                                                                                        "src": "16442:5:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "src": "16393:54:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bool",
                                                                                                        "typeString": "bool"
                                                                                                    }
                                                                                                },
                                                                                                "falseBody": null,
                                                                                                "id": 2573,
                                                                                                "nodeType": "IfStatement",
                                                                                                "src": "16390:180:14",
                                                                                                "trueBody": {
                                                                                                    "id": 2572,
                                                                                                    "nodeType": "Block",
                                                                                                    "src": "16448:122:14",
                                                                                                    "statements": [
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "argumentTypes": null,
                                                                                                                "id": 2570,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "UnaryOperation",
                                                                                                                "operator": "delete",
                                                                                                                "prefix": true,
                                                                                                                "src": "16483:55:14",
                                                                                                                "subExpression": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "components": [
                                                                                                                        {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "baseExpression": {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "expression": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "baseExpression": {
                                                                                                                                        "argumentTypes": null,
                                                                                                                                        "baseExpression": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "id": 2561,
                                                                                                                                            "name": "issues",
                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "src": "16490:6:14",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                                                            }
                                                                                                                                        },
                                                                                                                                        "id": 2563,
                                                                                                                                        "indexExpression": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "id": 2562,
                                                                                                                                            "name": "issuer",
                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                            "referencedDeclaration": 2360,
                                                                                                                                            "src": "16497:6:14",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                                "typeString": "address"
                                                                                                                                            }
                                                                                                                                        },
                                                                                                                                        "isConstant": false,
                                                                                                                                        "isLValue": true,
                                                                                                                                        "isPure": false,
                                                                                                                                        "lValueRequested": false,
                                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                                        "src": "16490:14:14",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 2565,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "argumentTypes": null,
                                                                                                                                        "id": 2564,
                                                                                                                                        "name": "tokenContract",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 2331,
                                                                                                                                        "src": "16505:13:14",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "16490:29:14",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                                                        "typeString": "struct ViaBond.bond storage ref"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 2566,
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "memberName": "counterParties",
                                                                                                                                "nodeType": "MemberAccess",
                                                                                                                                "referencedDeclaration": 8077,
                                                                                                                                "src": "16490:44:14",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                                                    "typeString": "address[] storage ref"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 2568,
                                                                                                                            "indexExpression": {
                                                                                                                                "argumentTypes": null,
                                                                                                                                "id": 2567,
                                                                                                                                "name": "p",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 2542,
                                                                                                                                "src": "16535:1:14",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": true,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "16490:47:14",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "id": 2569,
                                                                                                                    "isConstant": false,
                                                                                                                    "isInlineArray": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "nodeType": "TupleExpression",
                                                                                                                    "src": "16489:49:14",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    }
                                                                                                                },
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                                    "typeString": "tuple()"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 2571,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "16483:55:14"
                                                                                                        }
                                                                                                    ]
                                                                                                }
                                                                                            }
                                                                                        ]
                                                                                    },
                                                                                    "condition": {
                                                                                        "argumentTypes": null,
                                                                                        "commonType": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        "id": 2547,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2545,
                                                                                            "name": "p",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2542,
                                                                                            "src": "16345:1:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "BinaryOperation",
                                                                                        "operator": "<",
                                                                                        "rightExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2546,
                                                                                            "name": "length",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2532,
                                                                                            "src": "16347:6:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "src": "16345:8:14",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "id": 2575,
                                                                                    "initializationExpression": {
                                                                                        "assignments": [
                                                                                            2542
                                                                                        ],
                                                                                        "declarations": [
                                                                                            {
                                                                                                "constant": false,
                                                                                                "id": 2542,
                                                                                                "name": "p",
                                                                                                "nodeType": "VariableDeclaration",
                                                                                                "scope": 2575,
                                                                                                "src": "16335:6:14",
                                                                                                "stateVariable": false,
                                                                                                "storageLocation": "default",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                "typeName": {
                                                                                                    "id": 2541,
                                                                                                    "name": "uint",
                                                                                                    "nodeType": "ElementaryTypeName",
                                                                                                    "src": "16335:4:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "value": null,
                                                                                                "visibility": "internal"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2544,
                                                                                        "initialValue": {
                                                                                            "argumentTypes": null,
                                                                                            "hexValue": "30",
                                                                                            "id": 2543,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "kind": "number",
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "Literal",
                                                                                            "src": "16342:1:14",
                                                                                            "subdenomination": null,
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                                "typeString": "int_const 0"
                                                                                            },
                                                                                            "value": "0"
                                                                                        },
                                                                                        "nodeType": "VariableDeclarationStatement",
                                                                                        "src": "16335:8:14"
                                                                                    },
                                                                                    "loopExpression": {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 2549,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "UnaryOperation",
                                                                                            "operator": "++",
                                                                                            "prefix": false,
                                                                                            "src": "16355:3:14",
                                                                                            "subExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 2548,
                                                                                                "name": "p",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 2542,
                                                                                                "src": "16355:1:14",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "id": 2550,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "16355:3:14"
                                                                                    },
                                                                                    "nodeType": "ForStatement",
                                                                                    "src": "16331:286:14"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 2582,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "UnaryOperation",
                                                                                        "operator": "delete",
                                                                                        "prefix": true,
                                                                                        "src": "16726:39:14",
                                                                                        "subExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "components": [
                                                                                                {
                                                                                                    "argumentTypes": null,
                                                                                                    "baseExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "baseExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2576,
                                                                                                            "name": "purchases",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 1355,
                                                                                                            "src": "16733:9:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 2578,
                                                                                                        "indexExpression": {
                                                                                                            "argumentTypes": null,
                                                                                                            "id": 2577,
                                                                                                            "name": "payer",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2325,
                                                                                                            "src": "16743:5:14",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "16733:16:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 2580,
                                                                                                    "indexExpression": {
                                                                                                        "argumentTypes": null,
                                                                                                        "id": 2579,
                                                                                                        "name": "tokenContract",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 2331,
                                                                                                        "src": "16750:13:14",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "16733:31:14",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                        "typeString": "struct ViaBond.bond storage ref"
                                                                                                    }
                                                                                                }
                                                                                            ],
                                                                                            "id": 2581,
                                                                                            "isConstant": false,
                                                                                            "isInlineArray": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "nodeType": "TupleExpression",
                                                                                            "src": "16732:33:14",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                                                "typeString": "struct ViaBond.bond storage ref"
                                                                                            }
                                                                                        },
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_tuple$__$",
                                                                                            "typeString": "tuple()"
                                                                                        }
                                                                                    },
                                                                                    "id": 2583,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "16726:39:14"
                                                                                }
                                                                            ]
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2590,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 2586,
                                                                                    "name": "lock",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 1422,
                                                                                    "src": "16811:4:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                                                                        "typeString": "mapping(bytes32 => bool)"
                                                                                    }
                                                                                },
                                                                                "id": 2588,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "hexValue": "6c69717569646174696f6e",
                                                                                    "id": 2587,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "kind": "string",
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "Literal",
                                                                                    "src": "16816:13:14",
                                                                                    "subdenomination": null,
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_stringliteral_a84eeb19a78840384f41a4e6668a5cb48e920c562583aaef18cba3369ac852c9",
                                                                                        "typeString": "literal_string \"liquidation\""
                                                                                    },
                                                                                    "value": "liquidation"
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "16811:19:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "66616c7365",
                                                                                "id": 2589,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "bool",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "16833:5:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "value": "false"
                                                                            },
                                                                            "src": "16811:27:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 2591,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "16811:27:14"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 2594,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "argumentTypes": null,
                                                                                "id": 2592,
                                                                                "name": "status",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2340,
                                                                                "src": "16861:6:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "74727565",
                                                                                "id": 2593,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "bool",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "16870:4:14",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                },
                                                                                "value": "true"
                                                                            },
                                                                            "src": "16861:13:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 2595,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "16861:13:14"
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    ]
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 2725,
                                                    "name": "status",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2340,
                                                    "src": "18630:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "functionReturnParameters": 2335,
                                                "id": 2726,
                                                "nodeType": "Return",
                                                "src": "18623:13:14"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3094,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "redeem",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 2332,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 2323,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3094,
                                    "src": "13327:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 2322,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13327:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2325,
                                    "name": "payer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3094,
                                    "src": "13343:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2324,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13343:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2327,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3094,
                                    "src": "13358:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 2326,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13358:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2329,
                                    "name": "action",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3094,
                                    "src": "13377:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 2328,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13377:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 2331,
                                    "name": "tokenContract",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3094,
                                    "src": "13393:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 2330,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13393:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "13326:89:14"
                        },
                        "returnParameters": {
                            "id": 2335,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 2334,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3094,
                                    "src": "13432:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 2333,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13432:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "13431:6:14"
                        },
                        "scope": 3597,
                        "src": "13311:10166:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 3176,
                            "nodeType": "Block",
                            "src": "23674:1162:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 3110,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 3108,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12542,
                                                    "src": "23733:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 3109,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "23743:5:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "23733:15:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3107,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "23725:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3111,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23725:24:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3112,
                                    "nodeType": "ExpressionStatement",
                                    "src": "23725:24:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 3118,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3115,
                                                            "name": "sender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3096,
                                                            "src": "23805:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 3114,
                                                        "name": "amlCheck",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3501,
                                                        "src": "23796:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (address) view returns (bool)"
                                                        }
                                                    },
                                                    "id": 3116,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "23796:16:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 3117,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "23814:4:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "src": "23796:22:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3113,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "23788:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3119,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23788:31:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3120,
                                    "nodeType": "ExpressionStatement",
                                    "src": "23788:31:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 3126,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3123,
                                                            "name": "receiver",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3098,
                                                            "src": "23847:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 3122,
                                                        "name": "amlCheck",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3501,
                                                        "src": "23838:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (address) view returns (bool)"
                                                        }
                                                    },
                                                    "id": 3124,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "23838:18:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 3125,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "23858:4:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "src": "23838:24:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3121,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "23830:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3127,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23830:33:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3128,
                                    "nodeType": "ExpressionStatement",
                                    "src": "23830:33:14"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "id": 3137,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "id": 3133,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 3129,
                                                "name": "receiver",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3098,
                                                "src": "23953:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "!=",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 3131,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13075,
                                                        "src": "23973:4:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_Bond_$3597",
                                                            "typeString": "contract Bond"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_Bond_$3597",
                                                            "typeString": "contract Bond"
                                                        }
                                                    ],
                                                    "id": 3130,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "23965:7:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": "address"
                                                },
                                                "id": 3132,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "23965:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "src": "23953:25:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "&&",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "id": 3136,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 3134,
                                                "name": "receiver",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3098,
                                                "src": "23982:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "id": 3135,
                                                "name": "forwarder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3102,
                                                "src": "23994:9:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "src": "23982:21:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "src": "23953:50:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 3174,
                                        "nodeType": "Block",
                                        "src": "24272:557:14",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 3158,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 3151,
                                                                    "name": "purchases",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1355,
                                                                    "src": "24534:9:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                        "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                    }
                                                                },
                                                                "id": 3153,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 3152,
                                                                    "name": "sender",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3096,
                                                                    "src": "24544:6:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "24534:17:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                    "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                                }
                                                            },
                                                            "id": 3155,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 3154,
                                                                "name": "forwarder",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3102,
                                                                "src": "24552:9:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "24534:28:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                                "typeString": "struct ViaBond.bond storage ref"
                                                            }
                                                        },
                                                        "id": 3156,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "purchasedIssueAmount",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8074,
                                                        "src": "24534:49:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3157,
                                                        "name": "tokens",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3100,
                                                        "src": "24585:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "24534:57:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 3171,
                                                "nodeType": "IfStatement",
                                                "src": "24531:260:14",
                                                "trueBody": {
                                                    "id": 3170,
                                                    "nodeType": "Block",
                                                    "src": "24592:199:14",
                                                    "statements": [
                                                        {
                                                            "condition": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3160,
                                                                        "name": "forwarder",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3102,
                                                                        "src": "24632:9:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3161,
                                                                        "name": "sender",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3096,
                                                                        "src": "24643:6:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3162,
                                                                        "name": "receiver",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3098,
                                                                        "src": "24651:8:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3163,
                                                                        "name": "tokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3100,
                                                                        "src": "24661:6:14",
                                                                        "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": 3159,
                                                                    "name": "transferBondToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3225,
                                                                    "src": "24614:17:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                        "typeString": "function (address,address,address,uint256) returns (bool)"
                                                                    }
                                                                },
                                                                "id": 3164,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "24614:54:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "falseBody": {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "66616c7365",
                                                                    "id": 3167,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "24754:5:14",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "false"
                                                                },
                                                                "functionReturnParameters": 3106,
                                                                "id": 3168,
                                                                "nodeType": "Return",
                                                                "src": "24747:12:14"
                                                            },
                                                            "id": 3169,
                                                            "nodeType": "IfStatement",
                                                            "src": "24611:148:14",
                                                            "trueBody": {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "74727565",
                                                                    "id": 3165,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "24698:4:14",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "true"
                                                                },
                                                                "functionReturnParameters": 3106,
                                                                "id": 3166,
                                                                "nodeType": "Return",
                                                                "src": "24691:11:14"
                                                            }
                                                        }
                                                    ]
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 3172,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "24812:5:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "functionReturnParameters": 3106,
                                                "id": 3173,
                                                "nodeType": "Return",
                                                "src": "24805:12:14"
                                            }
                                        ]
                                    },
                                    "id": 3175,
                                    "nodeType": "IfStatement",
                                    "src": "23950:879:14",
                                    "trueBody": {
                                        "id": 3150,
                                        "nodeType": "Block",
                                        "src": "24004:253:14",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3139,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3100,
                                                            "src": "24113:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3140,
                                                            "name": "sender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3096,
                                                            "src": "24121:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3141,
                                                            "name": "bondName",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1341,
                                                            "src": "24129:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "546f6b656e5472616e73666572",
                                                            "id": 3142,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "24139:15:14",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_c335324393403d7912173b36ea8a4cce018c23e28c98da8b2f4fcdbab5b142d5",
                                                                "typeString": "literal_string \"TokenTransfer\""
                                                            },
                                                            "value": "TokenTransfer"
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3143,
                                                            "name": "forwarder",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3102,
                                                            "src": "24156:9:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_stringliteral_c335324393403d7912173b36ea8a4cce018c23e28c98da8b2f4fcdbab5b142d5",
                                                                "typeString": "literal_string \"TokenTransfer\""
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 3138,
                                                        "name": "redeem",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3094,
                                                        "src": "24106:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bool_$",
                                                            "typeString": "function (uint256,address,bytes32,bytes32,address) returns (bool)"
                                                        }
                                                    },
                                                    "id": 3144,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "24106:60:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "66616c7365",
                                                        "id": 3147,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "24240:5:14",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "false"
                                                    },
                                                    "functionReturnParameters": 3106,
                                                    "id": 3148,
                                                    "nodeType": "Return",
                                                    "src": "24233:12:14"
                                                },
                                                "id": 3149,
                                                "nodeType": "IfStatement",
                                                "src": "24103:142:14",
                                                "trueBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "74727565",
                                                        "id": 3145,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "24192:4:14",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "true"
                                                    },
                                                    "functionReturnParameters": 3106,
                                                    "id": 3146,
                                                    "nodeType": "Return",
                                                    "src": "24185:11:14"
                                                }
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3177,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "transferForward",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3103,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3096,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3177,
                                    "src": "23582:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3095,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23582:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3098,
                                    "name": "receiver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3177,
                                    "src": "23598:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3097,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23598:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3100,
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3177,
                                    "src": "23616:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3099,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23616:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3102,
                                    "name": "forwarder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3177,
                                    "src": "23632:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3101,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23632:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23581:69:14"
                        },
                        "returnParameters": {
                            "id": 3106,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3105,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3177,
                                    "src": "23669:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 3104,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23669:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "23668:6:14"
                        },
                        "scope": 3597,
                        "src": "23557:1279:14",
                        "stateMutability": "nonpayable",
                        "superFunction": 8091,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 3224,
                            "nodeType": "Block",
                            "src": "24960:302:14",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 3194,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3181,
                                                "src": "25009:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 3195,
                                                "name": "receiver",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3183,
                                                "src": "25017:8:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 3196,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3185,
                                                "src": "25027:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 3191,
                                                        "name": "issuedBond",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3179,
                                                        "src": "24983:10:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 3190,
                                                    "name": "ViaToken",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8499,
                                                    "src": "24974:8:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                        "typeString": "type(contract ViaToken)"
                                                    }
                                                },
                                                "id": 3192,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "24974:20:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                    "typeString": "contract ViaToken"
                                                }
                                            },
                                            "id": 3193,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transferToken",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8445,
                                            "src": "24974:34:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 3197,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "24974:60:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 3222,
                                        "nodeType": "Block",
                                        "src": "25216:39:14",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 3220,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "25238:5:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "functionReturnParameters": 3189,
                                                "id": 3221,
                                                "nodeType": "Return",
                                                "src": "25231:12:14"
                                            }
                                        ]
                                    },
                                    "id": 3223,
                                    "nodeType": "IfStatement",
                                    "src": "24971:284:14",
                                    "trueBody": {
                                        "id": 3219,
                                        "nodeType": "Block",
                                        "src": "25035:167:14",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3208,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 3198,
                                                                "name": "purchases",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1355,
                                                                "src": "25050:9:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                }
                                                            },
                                                            "id": 3201,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 3199,
                                                                "name": "receiver",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3183,
                                                                "src": "25060:8:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "25050:19:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                            }
                                                        },
                                                        "id": 3202,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3200,
                                                            "name": "issuedBond",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3179,
                                                            "src": "25070:10:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25050:31:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                            "typeString": "struct ViaBond.bond storage ref"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 3203,
                                                                "name": "purchases",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1355,
                                                                "src": "25084:9:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                }
                                                            },
                                                            "id": 3205,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 3204,
                                                                "name": "sender",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3181,
                                                                "src": "25094:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "25084:17:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                            }
                                                        },
                                                        "id": 3207,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3206,
                                                            "name": "issuedBond",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3179,
                                                            "src": "25102:10:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25084:29:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                            "typeString": "struct ViaBond.bond storage ref"
                                                        }
                                                    },
                                                    "src": "25050:63:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3209,
                                                "nodeType": "ExpressionStatement",
                                                "src": "25050:63:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3215,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "UnaryOperation",
                                                    "operator": "delete",
                                                    "prefix": true,
                                                    "src": "25128:36:14",
                                                    "subExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 3210,
                                                                "name": "purchases",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1355,
                                                                "src": "25135:9:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                                }
                                                            },
                                                            "id": 3212,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 3211,
                                                                "name": "sender",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3181,
                                                                "src": "25145:6:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "25135:17:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                                "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                            }
                                                        },
                                                        "id": 3214,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3213,
                                                            "name": "issuedBond",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3179,
                                                            "src": "25153:10:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25135:29:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                            "typeString": "struct ViaBond.bond storage ref"
                                                        }
                                                    },
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 3216,
                                                "nodeType": "ExpressionStatement",
                                                "src": "25128:36:14"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "74727565",
                                                    "id": 3217,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "25186:4:14",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "true"
                                                },
                                                "functionReturnParameters": 3189,
                                                "id": 3218,
                                                "nodeType": "Return",
                                                "src": "25179:11:14"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3225,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "transferBondToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3186,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3179,
                                    "name": "issuedBond",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3225,
                                    "src": "24871:18:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3178,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "24871:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3181,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3225,
                                    "src": "24891:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3180,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "24891:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3183,
                                    "name": "receiver",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3225,
                                    "src": "24907:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3182,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "24907:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3185,
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3225,
                                    "src": "24925:11:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3184,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "24925:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "24870:67:14"
                        },
                        "returnParameters": {
                            "id": 3189,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3188,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3225,
                                    "src": "24955:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 3187,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "24955:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "24954:6:14"
                        },
                        "scope": 3597,
                        "src": "24844:418:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 3233,
                            "nodeType": "Block",
                            "src": "25329:37:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3231,
                                        "name": "bondsIssued",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1358,
                                        "src": "25347:11:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                            "typeString": "address[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 3230,
                                    "id": 3232,
                                    "nodeType": "Return",
                                    "src": "25340:18:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3234,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getBonds",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3226,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "25287:2:14"
                        },
                        "returnParameters": {
                            "id": 3230,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3229,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3234,
                                    "src": "25312:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 3227,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "25312:7:14",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 3228,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "25312:9:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25311:18:14"
                        },
                        "scope": 3597,
                        "src": "25270:96:14",
                        "stateMutability": "view",
                        "superFunction": 8136,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 3283,
                            "nodeType": "Block",
                            "src": "25498:310:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3251,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "25517:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3253,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3252,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3236,
                                                            "src": "25524:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25517:14:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3255,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3254,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3238,
                                                        "src": "25532:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "25517:25:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3256,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "parValue",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8066,
                                                "src": "25517:34:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3257,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "25570:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3259,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3258,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3236,
                                                            "src": "25577:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25570:14:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3261,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3260,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3238,
                                                        "src": "25585:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "25570:25:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3262,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "purchasedIssueAmount",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8074,
                                                "src": "25570:46:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3263,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "25635:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3265,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3264,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3236,
                                                            "src": "25642:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25635:14:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3267,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3266,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3238,
                                                        "src": "25650:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "25635:25:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3268,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "paidInAmount",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8068,
                                                "src": "25635:38:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3269,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "25692:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3271,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3270,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3236,
                                                            "src": "25699:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25692:14:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3273,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3272,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3238,
                                                        "src": "25707:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "25692:25:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3274,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "paidInCurrency",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8070,
                                                "src": "25692:40:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3275,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "25751:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3277,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3276,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3236,
                                                            "src": "25758:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25751:14:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3279,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3278,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3238,
                                                        "src": "25766:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "25751:25:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3280,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timeIssuedOrSubscribed",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8072,
                                                "src": "25751:48:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "id": 3281,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "25516:284:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$",
                                            "typeString": "tuple(uint256,uint256,uint256,bytes32,uint256)"
                                        }
                                    },
                                    "functionReturnParameters": 3250,
                                    "id": 3282,
                                    "nodeType": "Return",
                                    "src": "25509:291:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3284,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getBondIssues",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3239,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3236,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3284,
                                    "src": "25397:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3235,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25397:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3238,
                                    "name": "bondToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3284,
                                    "src": "25413:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3237,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25413:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25396:35:14"
                        },
                        "returnParameters": {
                            "id": 3250,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3241,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3284,
                                    "src": "25454:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3240,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25454:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3243,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3284,
                                    "src": "25463:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3242,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25463:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3245,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3284,
                                    "src": "25472:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3244,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25472:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3247,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3284,
                                    "src": "25481:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3246,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25481:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3249,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3284,
                                    "src": "25490:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3248,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25490:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25453:45:14"
                        },
                        "scope": 3597,
                        "src": "25374:434:14",
                        "stateMutability": "view",
                        "superFunction": 8153,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 3325,
                            "nodeType": "Block",
                            "src": "25937:269:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3299,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "25956:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3301,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3300,
                                                            "name": "purchaser",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3286,
                                                            "src": "25963:9:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25956:17:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3303,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3302,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3288,
                                                        "src": "25974:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "25956:28:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3304,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "purchasedIssueAmount",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8074,
                                                "src": "25956:49:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3305,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "26024:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3307,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3306,
                                                            "name": "purchaser",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3286,
                                                            "src": "26031:9:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "26024:17:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3309,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3308,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3288,
                                                        "src": "26042:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "26024:28:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3310,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "paidInAmount",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8068,
                                                "src": "26024:41:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3311,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "26084:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3313,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3312,
                                                            "name": "purchaser",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3286,
                                                            "src": "26091:9:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "26084:17:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3315,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3314,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3288,
                                                        "src": "26102:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "26084:28:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3316,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "paidInCurrency",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8070,
                                                "src": "26084:43:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3317,
                                                            "name": "issues",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1349,
                                                            "src": "26146:6:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct ViaBond.bond storage ref))"
                                                            }
                                                        },
                                                        "id": 3319,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 3318,
                                                            "name": "purchaser",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3286,
                                                            "src": "26153:9:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "26146:17:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_bond_$8078_storage_$",
                                                            "typeString": "mapping(address => struct ViaBond.bond storage ref)"
                                                        }
                                                    },
                                                    "id": 3321,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3320,
                                                        "name": "bondToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3288,
                                                        "src": "26164:9:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "26146:28:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_bond_$8078_storage",
                                                        "typeString": "struct ViaBond.bond storage ref"
                                                    }
                                                },
                                                "id": 3322,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timeIssuedOrSubscribed",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8072,
                                                "src": "26146:51:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "id": 3323,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "25955:243:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$",
                                            "typeString": "tuple(uint256,uint256,bytes32,uint256)"
                                        }
                                    },
                                    "functionReturnParameters": 3298,
                                    "id": 3324,
                                    "nodeType": "Return",
                                    "src": "25948:250:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3326,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getBondPurchases",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3289,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3286,
                                    "name": "purchaser",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3326,
                                    "src": "25842:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3285,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25842:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3288,
                                    "name": "bondToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3326,
                                    "src": "25861:17:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3287,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25861:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25841:38:14"
                        },
                        "returnParameters": {
                            "id": 3298,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3291,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3326,
                                    "src": "25902:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3290,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25902:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3293,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3326,
                                    "src": "25911:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3292,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25911:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3295,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3326,
                                    "src": "25920:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3294,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25920:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3297,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3326,
                                    "src": "25929:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3296,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25929:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25901:36:14"
                        },
                        "scope": 3597,
                        "src": "25816:390:14",
                        "stateMutability": "view",
                        "superFunction": 8168,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 3358,
                            "nodeType": "Block",
                            "src": "26281:189:14",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 3340,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3337,
                                                    "name": "cash",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3328,
                                                    "src": "26311:4:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 3335,
                                                    "name": "factory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1333,
                                                    "src": "26295:7:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                        "typeString": "contract ViaFactory"
                                                    }
                                                },
                                                "id": 3336,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getType",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8240,
                                                "src": "26295:15:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                    "typeString": "function (address) view external returns (bytes32)"
                                                }
                                            },
                                            "id": 3338,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "26295:21:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "56696143617368",
                                            "id": 3339,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "26320:9:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                "typeString": "literal_string \"ViaCash\""
                                            },
                                            "value": "ViaCash"
                                        },
                                        "src": "26295:34:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3353,
                                                    "name": "payee",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3332,
                                                    "src": "26448:5:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3354,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3330,
                                                    "src": "26455:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3350,
                                                            "name": "cash",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3328,
                                                            "src": "26433:4:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 3349,
                                                        "name": "IERC20",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 409,
                                                        "src": "26426:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                            "typeString": "type(contract IERC20)"
                                                        }
                                                    },
                                                    "id": 3351,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26426:12:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IERC20_$409",
                                                        "typeString": "contract IERC20"
                                                    }
                                                },
                                                "id": 3352,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "transfer",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 363,
                                                "src": "26426:21:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                    "typeString": "function (address,uint256) external returns (bool)"
                                                }
                                            },
                                            "id": 3355,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "26426:36:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "id": 3356,
                                        "nodeType": "ExpressionStatement",
                                        "src": "26426:36:14"
                                    },
                                    "id": 3357,
                                    "nodeType": "IfStatement",
                                    "src": "26292:170:14",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3345,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3330,
                                                    "src": "26383:6:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 3346,
                                                    "name": "payee",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3332,
                                                    "src": "26391:5:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3342,
                                                            "name": "cash",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3328,
                                                            "src": "26352:4:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 3341,
                                                        "name": "ViaCash",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8212,
                                                        "src": "26344:7:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_ViaCash_$8212_$",
                                                            "typeString": "type(contract ViaCash)"
                                                        }
                                                    },
                                                    "id": 3343,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26344:13:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ViaCash_$8212",
                                                        "typeString": "contract ViaCash"
                                                    }
                                                },
                                                "id": 3344,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "requestDeductFromBalance",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 8189,
                                                "src": "26344:38:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,address) external returns (uint256)"
                                                }
                                            },
                                            "id": 3347,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "26344:53:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 3348,
                                        "nodeType": "ExpressionStatement",
                                        "src": "26344:53:14"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3359,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "send",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3333,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3328,
                                    "name": "cash",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3359,
                                    "src": "26228:12:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3327,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "26228:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3330,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3359,
                                    "src": "26242:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3329,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "26242:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3332,
                                    "name": "payee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3359,
                                    "src": "26258:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3331,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "26258:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "26227:45:14"
                        },
                        "returnParameters": {
                            "id": 3334,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "26281:0:14"
                        },
                        "scope": 3597,
                        "src": "26214:256:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 3467,
                            "nodeType": "Block",
                            "src": "26568:850:14",
                            "statements": [
                                {
                                    "assignments": [
                                        3371
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 3371,
                                            "name": "fees",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 3467,
                                            "src": "26579:12:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 3370,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "26579:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 3372,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "26579:12:14"
                                },
                                {
                                    "assignments": [
                                        3374
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 3374,
                                            "name": "returnValue",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 3467,
                                            "src": "26602:19:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 3373,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "26602:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 3375,
                                    "initialValue": null,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "26602:19:14"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 3378,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 3376,
                                            "name": "action",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3365,
                                            "src": "26635:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "69737375696e67",
                                            "id": 3377,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "26643:9:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_fe2717aad5755f7dec032c6177c0d8d1b95a78ce0f26cacb98283972ec0e168a",
                                                "typeString": "literal_string \"issuing\""
                                            },
                                            "value": "issuing"
                                        },
                                        "src": "26635:17:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 3388,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 3386,
                                                "name": "action",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3365,
                                                "src": "26716:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "726564656d7074696f6e",
                                                "id": 3387,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "26724:12:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                    "typeString": "literal_string \"redemption\""
                                                },
                                                "value": "redemption"
                                            },
                                            "src": "26716:20:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": null,
                                        "id": 3396,
                                        "nodeType": "IfStatement",
                                        "src": "26713:71:14",
                                        "trueBody": {
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 3394,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftHandSide": {
                                                    "argumentTypes": null,
                                                    "id": 3389,
                                                    "name": "fees",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3371,
                                                    "src": "26751:4:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "Assignment",
                                                "operator": "=",
                                                "rightHandSide": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "726564656d7074696f6e",
                                                            "id": 3392,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "26771:12:14",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                "typeString": "literal_string \"redemption\""
                                                            },
                                                            "value": "redemption"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                "typeString": "literal_string \"redemption\""
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3390,
                                                            "name": "rates",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1335,
                                                            "src": "26758:5:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                                "typeString": "contract VerifiedRates"
                                                            }
                                                        },
                                                        "id": 3391,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getFee",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8051,
                                                        "src": "26758:12:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                                                            "typeString": "function (bytes32) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 3393,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26758:26:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "26751:33:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "id": 3395,
                                            "nodeType": "ExpressionStatement",
                                            "src": "26751:33:14"
                                        }
                                    },
                                    "id": 3397,
                                    "nodeType": "IfStatement",
                                    "src": "26632:152:14",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 3384,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                                "argumentTypes": null,
                                                "id": 3379,
                                                "name": "fees",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3371,
                                                "src": "26667:4:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "69737375696e67",
                                                        "id": 3382,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "26687:9:14",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_fe2717aad5755f7dec032c6177c0d8d1b95a78ce0f26cacb98283972ec0e168a",
                                                            "typeString": "literal_string \"issuing\""
                                                        },
                                                        "value": "issuing"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_stringliteral_fe2717aad5755f7dec032c6177c0d8d1b95a78ce0f26cacb98283972ec0e168a",
                                                            "typeString": "literal_string \"issuing\""
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3380,
                                                        "name": "rates",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 1335,
                                                        "src": "26674:5:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                            "typeString": "contract VerifiedRates"
                                                        }
                                                    },
                                                    "id": 3381,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "getFee",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 8051,
                                                    "src": "26674:12:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                                                        "typeString": "function (bytes32) view external returns (uint256)"
                                                    }
                                                },
                                                "id": 3383,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "26674:23:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "26667:30:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 3385,
                                        "nodeType": "ExpressionStatement",
                                        "src": "26667:30:14"
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 3400,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 3398,
                                            "name": "fees",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3371,
                                            "src": "26798:4:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 3399,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "26805:1:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "26798:8:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 3464,
                                    "nodeType": "IfStatement",
                                    "src": "26795:593:14",
                                    "trueBody": {
                                        "id": 3463,
                                        "nodeType": "Block",
                                        "src": "26807:581:14",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    3402
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 3402,
                                                        "name": "feeTo",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 3463,
                                                        "src": "26822:13:14",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 3401,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "26822:7:14",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 3406,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [],
                                                    "expression": {
                                                        "argumentTypes": [],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3403,
                                                            "name": "rates",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1335,
                                                            "src": "26838:5:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_VerifiedRates_$8061",
                                                                "typeString": "contract VerifiedRates"
                                                            }
                                                        },
                                                        "id": 3404,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getCustodian",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8029,
                                                        "src": "26838:18:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                            "typeString": "function () view external returns (address)"
                                                        }
                                                    },
                                                    "id": 3405,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26838:20:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "26822:36:14"
                                            },
                                            {
                                                "assignments": [
                                                    3408
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 3408,
                                                        "name": "cashContract",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 3463,
                                                        "src": "26873:20:14",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 3407,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "26873:7:14",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 3409,
                                                "initialValue": null,
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "26873:20:14"
                                            },
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 3412,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3363,
                                                            "src": "26940:8:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 3410,
                                                            "name": "factory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 1333,
                                                            "src": "26911:7:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                "typeString": "contract ViaFactory"
                                                            }
                                                        },
                                                        "id": 3411,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "checkSupportForToken",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8394,
                                                        "src": "26911:28:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                                            "typeString": "function (bytes32) view external returns (bool)"
                                                        }
                                                    },
                                                    "id": 3413,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26911:38:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3427,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "id": 3421,
                                                            "name": "cashContract",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3408,
                                                            "src": "27055:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 3424,
                                                                    "name": "currency",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3363,
                                                                    "src": "27097:8:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "56696143617368",
                                                                    "id": 3425,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "string",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "27107:9:14",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                        "typeString": "literal_string \"ViaCash\""
                                                                    },
                                                                    "value": "ViaCash"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                        "typeString": "literal_string \"ViaCash\""
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 3422,
                                                                    "name": "factory",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1333,
                                                                    "src": "27070:7:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                        "typeString": "contract ViaFactory"
                                                                    }
                                                                },
                                                                "id": 3423,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "getTokenByNameType",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 8276,
                                                                "src": "27070:26:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
                                                                    "typeString": "function (bytes32,bytes32) view external returns (address)"
                                                                }
                                                            },
                                                            "id": 3426,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "27070:47:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "src": "27055:62:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "id": 3428,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "27055:62:14"
                                                },
                                                "id": 3429,
                                                "nodeType": "IfStatement",
                                                "src": "26908:209:14",
                                                "trueBody": {
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 3419,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "argumentTypes": null,
                                                            "id": 3414,
                                                            "name": "cashContract",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3408,
                                                            "src": "26968:12:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 3417,
                                                                    "name": "currency",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3363,
                                                                    "src": "27008:8:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 3415,
                                                                    "name": "factory",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 1333,
                                                                    "src": "26983:7:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                                        "typeString": "contract ViaFactory"
                                                                    }
                                                                },
                                                                "id": 3416,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "getCurrencyToken",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 8401,
                                                                "src": "26983:24:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                                                    "typeString": "function (bytes32) view external returns (address)"
                                                                }
                                                            },
                                                            "id": 3418,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "26983:34:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "src": "26968:49:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "id": 3420,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "26968:49:14"
                                                }
                                            },
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 3434,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3430,
                                                        "name": "feeTo",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3402,
                                                        "src": "27135:5:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "!=",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "307830",
                                                                "id": 3432,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "27150:3:14",
                                                                "subdenomination": null,
                                                                "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": 3431,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "27142:7:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 3433,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "27142:12:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "src": "27135:19:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 3462,
                                                "nodeType": "IfStatement",
                                                "src": "27132:245:14",
                                                "trueBody": {
                                                    "id": 3461,
                                                    "nodeType": "Block",
                                                    "src": "27155:222:14",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 3439,
                                                                        "name": "feeTo",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 3402,
                                                                        "src": "27204:5:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 3442,
                                                                                "name": "fees",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3371,
                                                                                "src": "27230:4:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 3443,
                                                                                "name": "value",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3361,
                                                                                "src": "27236:5:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 3440,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8909,
                                                                                "src": "27211:10:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 3441,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "mulDown",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 8604,
                                                                            "src": "27211:18:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 3444,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "27211:31:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 3436,
                                                                                "name": "cashContract",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3408,
                                                                                "src": "27181:12:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 3435,
                                                                            "name": "IERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 409,
                                                                            "src": "27174:6:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$409_$",
                                                                                "typeString": "type(contract IERC20)"
                                                                            }
                                                                        },
                                                                        "id": 3437,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "27174:20:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IERC20_$409",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    },
                                                                    "id": 3438,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "transfer",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 363,
                                                                    "src": "27174:29:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                        "typeString": "function (address,uint256) external returns (bool)"
                                                                    }
                                                                },
                                                                "id": 3445,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "27174:69:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 3446,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "27174:69:14"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 3457,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 3447,
                                                                    "name": "returnValue",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 3374,
                                                                    "src": "27262:11:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 3450,
                                                                            "name": "value",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 3361,
                                                                            "src": "27285:5:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 3453,
                                                                                    "name": "fees",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3371,
                                                                                    "src": "27311:4:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                {
                                                                                    "argumentTypes": null,
                                                                                    "id": 3454,
                                                                                    "name": "value",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 3361,
                                                                                    "src": "27317:5:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 3451,
                                                                                    "name": "FixedPoint",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "src": "27292:10:14",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                                                        "typeString": "type(library FixedPoint)"
                                                                                    }
                                                                                },
                                                                                "id": 3452,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "mulDown",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 8604,
                                                                                "src": "27292:18:14",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                }
                                                                            },
                                                                            "id": 3455,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "27292:31:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 3448,
                                                                            "name": "Math",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10483,
                                                                            "src": "27276:4:14",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                                                "typeString": "type(library Math)"
                                                                            }
                                                                        },
                                                                        "id": 3449,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "sub",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 10300,
                                                                        "src": "27276:8:14",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 3456,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "27276:48:14",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "27262:62:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 3458,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "27262:62:14"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 3459,
                                                                "name": "returnValue",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3374,
                                                                "src": "27350:11:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "functionReturnParameters": 3369,
                                                            "id": 3460,
                                                            "nodeType": "Return",
                                                            "src": "27343:18:14"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 3465,
                                        "name": "value",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3361,
                                        "src": "27405:5:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 3369,
                                    "id": 3466,
                                    "nodeType": "Return",
                                    "src": "27398:12:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3468,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "payFee",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3366,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3361,
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3468,
                                    "src": "26494:13:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3360,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "26494:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3363,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3468,
                                    "src": "26509:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3362,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "26509:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3365,
                                    "name": "action",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3468,
                                    "src": "26527:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 3364,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "26527:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "26493:49:14"
                        },
                        "returnParameters": {
                            "id": 3369,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3368,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3468,
                                    "src": "26560:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3367,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "26560:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "26559:9:14"
                        },
                        "scope": 3597,
                        "src": "26478:940:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 3500,
                            "nodeType": "Block",
                            "src": "27531:240:14",
                            "statements": [
                                {
                                    "assignments": [
                                        3476
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 3476,
                                            "name": "client",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 3500,
                                            "src": "27542:14:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 3475,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "27542:7:14",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 3480,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 3477,
                                                "name": "factory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1333,
                                                "src": "27559:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                    "typeString": "contract ViaFactory"
                                                }
                                            },
                                            "id": 3478,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getClient",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8361,
                                            "src": "27559:17:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 3479,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27559:19:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "27542:36:14"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 3485,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 3481,
                                            "name": "client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3476,
                                            "src": "27592:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "307830",
                                                    "id": 3483,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "27608:3:14",
                                                    "subdenomination": null,
                                                    "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": 3482,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "27600:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 3484,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "27600:12:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "27592:20:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 3488,
                                    "nodeType": "IfStatement",
                                    "src": "27589:49:14",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 3486,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "27634:4:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "functionReturnParameters": 3474,
                                        "id": 3487,
                                        "nodeType": "Return",
                                        "src": "27627:11:14"
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 3493,
                                                "name": "account",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3470,
                                                "src": "27688:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 3490,
                                                        "name": "client",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3476,
                                                        "src": "27667:6:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 3489,
                                                    "name": "VerifiedClient",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8022,
                                                    "src": "27652:14:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_VerifiedClient_$8022_$",
                                                        "typeString": "type(contract VerifiedClient)"
                                                    }
                                                },
                                                "id": 3491,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "27652:22:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$8022",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 3492,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getAMLStatus",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 7999,
                                            "src": "27652:35:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                                                "typeString": "function (address) view external returns (bool)"
                                            }
                                        },
                                        "id": 3494,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27652:44:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 3497,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "27758:5:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "functionReturnParameters": 3474,
                                        "id": 3498,
                                        "nodeType": "Return",
                                        "src": "27751:12:14"
                                    },
                                    "id": 3499,
                                    "nodeType": "IfStatement",
                                    "src": "27649:114:14",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 3495,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "27718:4:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "functionReturnParameters": 3474,
                                        "id": 3496,
                                        "nodeType": "Return",
                                        "src": "27711:11:14"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3501,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "amlCheck",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3471,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3470,
                                    "name": "account",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3501,
                                    "src": "27488:15:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3469,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27488:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "27487:17:14"
                        },
                        "returnParameters": {
                            "id": 3474,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3473,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3501,
                                    "src": "27526:4:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 3472,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27526:4:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "27525:6:14"
                        },
                        "scope": 3597,
                        "src": "27470:301:14",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 3514,
                            "nodeType": "Block",
                            "src": "27854:27:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 3511,
                                            "name": "_pause",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12557,
                                            "src": "27865:6:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                                "typeString": "function ()"
                                            }
                                        },
                                        "id": 3512,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27865:8:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3513,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27865:8:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3515,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 3504,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "27817:3:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 3505,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "27817:10:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 3507,
                                                "name": "factory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1333,
                                                "src": "27837:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                    "typeString": "contract ViaFactory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                    "typeString": "contract ViaFactory"
                                                }
                                            ],
                                            "id": 3506,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "27829:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_address_$",
                                                "typeString": "type(address)"
                                            },
                                            "typeName": "address"
                                        },
                                        "id": 3508,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27829:16:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 3509,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 3503,
                                    "name": "onlyFactoryOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3548,
                                    "src": "27800:16:14",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "27800:46:14"
                            }
                        ],
                        "name": "pause",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3502,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "27797:2:14"
                        },
                        "returnParameters": {
                            "id": 3510,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "27854:0:14"
                        },
                        "scope": 3597,
                        "src": "27783:98:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 3528,
                            "nodeType": "Block",
                            "src": "27960:29:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 3525,
                                            "name": "_unpause",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 12568,
                                            "src": "27971:8:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                                "typeString": "function ()"
                                            }
                                        },
                                        "id": 3526,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27971:10:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3527,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27971:10:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3529,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 3518,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "27923:3:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 3519,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "27923:10:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 3521,
                                                "name": "factory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1333,
                                                "src": "27943:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                    "typeString": "contract ViaFactory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                    "typeString": "contract ViaFactory"
                                                }
                                            ],
                                            "id": 3520,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "27935:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_address_$",
                                                "typeString": "type(address)"
                                            },
                                            "typeName": "address"
                                        },
                                        "id": 3522,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27935:16:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 3523,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 3517,
                                    "name": "onlyFactoryOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3548,
                                    "src": "27906:16:14",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "27906:46:14"
                            }
                        ],
                        "name": "unpause",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3516,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "27903:2:14"
                        },
                        "returnParameters": {
                            "id": 3524,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "27960:0:14"
                        },
                        "scope": 3597,
                        "src": "27887:102:14",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 3547,
                            "nodeType": "Block",
                            "src": "28058:81:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 3543,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 3539,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3536,
                                                        "name": "_sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3531,
                                                        "src": "28077:7:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "id": 3537,
                                                            "name": "owner",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 259,
                                                            "src": "28088:5:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                                "typeString": "function () view returns (address)"
                                                            }
                                                        },
                                                        "id": 3538,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "28088:7:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "28077:18:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 3542,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3540,
                                                        "name": "_sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3531,
                                                        "src": "28099:7:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "id": 3541,
                                                        "name": "_factory",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3533,
                                                        "src": "28110:8:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "28099:19:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "28077:41:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 3535,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "28069:7:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 3544,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "28069:50:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 3545,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28069:50:14"
                                },
                                {
                                    "id": 3546,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "28130:1:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3548,
                        "name": "onlyFactoryOwner",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 3534,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3531,
                                    "name": "_sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3548,
                                    "src": "28024:15:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3530,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "28024:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3533,
                                    "name": "_factory",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3548,
                                    "src": "28041:16:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 3532,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "28041:7:14",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "28023:35:14"
                        },
                        "src": "27997:142:14",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 3579,
                            "nodeType": "Block",
                            "src": "28222:337:14",
                            "statements": [
                                {
                                    "assignments": [
                                        3556
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 3556,
                                            "name": "tokenDecimals",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 3579,
                                            "src": "28316:21:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 3555,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "28316:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 3564,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 3559,
                                                                "name": "tkn",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3550,
                                                                "src": "28354:3:14",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$409",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 3558,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "28346:7:14",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 3560,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "28346:12:14",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 3557,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12538,
                                                    "src": "28340:5:14",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$12538_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 3561,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "28340:19:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$12538",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 3562,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "decimals",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12153,
                                            "src": "28340:28:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                                "typeString": "function () view external returns (uint8)"
                                            }
                                        },
                                        "id": 3563,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "28340:30:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "28316:54:14"
                                },
                                {
                                    "assignments": [
                                        3566
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 3566,
                                            "name": "decimalsDifference",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 3579,
                                            "src": "28448:26:14",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 3565,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "28448:7:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 3572,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "3138",
                                                "id": 3569,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "28486:2:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                "value": "18"
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 3570,
                                                "name": "tokenDecimals",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3556,
                                                "src": "28490:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 3567,
                                                "name": "Math",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10483,
                                                "src": "28477:4:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Math_$10483_$",
                                                    "typeString": "type(library Math)"
                                                }
                                            },
                                            "id": 3568,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "sub",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 10300,
                                            "src": "28477:8:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 3571,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "28477:27:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "28448:56:14"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 3577,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "31653138",
                                            "id": 3573,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "28522:4:14",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                "typeString": "int_const 1000000000000000000"
                                            },
                                            "value": "1e18"
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "*",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 3576,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "3130",
                                                "id": 3574,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "28529:2:14",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_10_by_1",
                                                    "typeString": "int_const 10"
                                                },
                                                "value": "10"
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "**",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "id": 3575,
                                                "name": "decimalsDifference",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3566,
                                                "src": "28533:18:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "28529:22:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "28522:29:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 3554,
                                    "id": 3578,
                                    "nodeType": "Return",
                                    "src": "28515:36:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3580,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_computeScalingFactor",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3551,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3550,
                                    "name": "tkn",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3580,
                                    "src": "28178:10:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IERC20_$409",
                                        "typeString": "contract IERC20"
                                    },
                                    "typeName": {
                                        "contractScope": null,
                                        "id": 3549,
                                        "name": "IERC20",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 409,
                                        "src": "28178:6:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IERC20_$409",
                                            "typeString": "contract IERC20"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "28177:12:14"
                        },
                        "returnParameters": {
                            "id": 3554,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3553,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3580,
                                    "src": "28213:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3552,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "28213:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "28212:9:14"
                        },
                        "scope": 3597,
                        "src": "28147:412:14",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 3595,
                            "nodeType": "Block",
                            "src": "28656:75:14",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 3591,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3582,
                                                "src": "28701:6:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 3592,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3584,
                                                "src": "28709:13:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 3589,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8909,
                                                "src": "28682:10:14",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$8909_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 3590,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "mulDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 8604,
                                            "src": "28682:18:14",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 3593,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "28682:41:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 3588,
                                    "id": 3594,
                                    "nodeType": "Return",
                                    "src": "28675:48:14"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 3596,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_upscale",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 3585,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3582,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3596,
                                    "src": "28585:14:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3581,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "28585:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 3584,
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3596,
                                    "src": "28601:21:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3583,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "28601:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "28584:39:14"
                        },
                        "returnParameters": {
                            "id": 3588,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 3587,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 3596,
                                    "src": "28647:7:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 3586,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "28647:7:14",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "28646:9:14"
                        },
                        "scope": 3597,
                        "src": "28567:164:14",
                        "stateMutability": "pure",
                        "superFunction": null,
                        "visibility": "internal"
                    }
                ],
                "scope": 3598,
                "src": "803:27937:14"
            }
        ],
        "src": "116:28624:14"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/Bond.sol",
            "exportedSymbols": {
                "Bond": [
                    3597
                ]
            }
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.5",
                        ".7"
                    ]
                },
                "id": 1294,
                "name": "PragmaDirective",
                "src": "116:22:14"
            },
            {
                "attributes": {
                    "literals": [
                        "experimental",
                        "ABIEncoderV2"
                    ]
                },
                "id": 1295,
                "name": "PragmaDirective",
                "src": "140:33:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8213,
                    "absolutePath": "project:/contracts/interfaces/ViaCash.sol",
                    "file": "./interfaces/ViaCash.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1296,
                "name": "ImportDirective",
                "src": "177:34:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8170,
                    "absolutePath": "project:/contracts/interfaces/ViaBond.sol",
                    "file": "./interfaces/ViaBond.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1297,
                "name": "ImportDirective",
                "src": "213:34:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8500,
                    "absolutePath": "project:/contracts/interfaces/ViaToken.sol",
                    "file": "./interfaces/ViaToken.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1298,
                "name": "ImportDirective",
                "src": "249:35:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8428,
                    "absolutePath": "project:/contracts/interfaces/ViaOracle.sol",
                    "file": "./interfaces/ViaOracle.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1299,
                "name": "ImportDirective",
                "src": "286:36:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8403,
                    "absolutePath": "project:/contracts/interfaces/ViaFactory.sol",
                    "file": "./interfaces/ViaFactory.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1300,
                "name": "ImportDirective",
                "src": "324:37:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8023,
                    "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                    "file": "./interfaces/VerifiedClient.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1301,
                "name": "ImportDirective",
                "src": "363:41:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8062,
                    "absolutePath": "project:/contracts/interfaces/VerifiedRates.sol",
                    "file": "./interfaces/VerifiedRates.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1302,
                "name": "ImportDirective",
                "src": "406:40:14"
            },
            {
                "attributes": {
                    "SourceUnit": 10484,
                    "absolutePath": "project:/contracts/math/Math.sol",
                    "file": "./math/Math.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1303,
                "name": "ImportDirective",
                "src": "450:25:14"
            },
            {
                "attributes": {
                    "SourceUnit": 8910,
                    "absolutePath": "project:/contracts/math/FixedPoint.sol",
                    "file": "./math/FixedPoint.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1304,
                "name": "ImportDirective",
                "src": "477:31:14"
            },
            {
                "attributes": {
                    "SourceUnit": 10190,
                    "absolutePath": "project:/contracts/math/LogExpMath.sol",
                    "file": "./math/LogExpMath.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1305,
                "name": "ImportDirective",
                "src": "510:31:14"
            },
            {
                "attributes": {
                    "SourceUnit": 12539,
                    "absolutePath": "project:/contracts/utilities/ERC20.sol",
                    "file": "./utilities/ERC20.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1306,
                "name": "ImportDirective",
                "src": "545:31:14"
            },
            {
                "attributes": {
                    "SourceUnit": 12578,
                    "absolutePath": "project:/contracts/utilities/Pausable.sol",
                    "file": "./utilities/Pausable.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1307,
                "name": "ImportDirective",
                "src": "578:34:14"
            },
            {
                "attributes": {
                    "SourceUnit": 12993,
                    "absolutePath": "project:/contracts/utilities/StringUtils.sol",
                    "file": "./utilities/StringUtils.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1308,
                "name": "ImportDirective",
                "src": "614:37:14"
            },
            {
                "attributes": {
                    "SourceUnit": 479,
                    "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1309,
                "name": "ImportDirective",
                "src": "655:60:14"
            },
            {
                "attributes": {
                    "SourceUnit": 341,
                    "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "scope": 3598,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 1310,
                "name": "ImportDirective",
                "src": "717:82:14"
            },
            {
                "attributes": {
                    "contractDependencies": [
                        29,
                        340,
                        409,
                        478,
                        8169,
                        12538,
                        12577
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        3597,
                        12577,
                        340,
                        12538,
                        409,
                        29,
                        478,
                        8169
                    ],
                    "name": "Bond",
                    "scope": 3598
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ViaBond",
                                    "referencedDeclaration": 8169,
                                    "type": "contract ViaBond"
                                },
                                "id": 1311,
                                "name": "UserDefinedTypeName",
                                "src": "820:7:14"
                            }
                        ],
                        "id": 1312,
                        "name": "InheritanceSpecifier",
                        "src": "820:7:14"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Initializable",
                                    "referencedDeclaration": 478,
                                    "type": "contract Initializable"
                                },
                                "id": 1313,
                                "name": "UserDefinedTypeName",
                                "src": "829:13:14"
                            }
                        ],
                        "id": 1314,
                        "name": "InheritanceSpecifier",
                        "src": "829:13:14"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ERC20",
                                    "referencedDeclaration": 12538,
                                    "type": "contract ERC20"
                                },
                                "id": 1315,
                                "name": "UserDefinedTypeName",
                                "src": "844:5:14"
                            }
                        ],
                        "id": 1316,
                        "name": "InheritanceSpecifier",
                        "src": "844:5:14"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Ownable",
                                    "referencedDeclaration": 340,
                                    "type": "contract Ownable"
                                },
                                "id": 1317,
                                "name": "UserDefinedTypeName",
                                "src": "851:7:14"
                            }
                        ],
                        "id": 1318,
                        "name": "InheritanceSpecifier",
                        "src": "851:7:14"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Pausable",
                                    "referencedDeclaration": 12577,
                                    "type": "contract Pausable"
                                },
                                "id": 1319,
                                "name": "UserDefinedTypeName",
                                "src": "860:8:14"
                            }
                        ],
                        "id": 1320,
                        "name": "InheritanceSpecifier",
                        "src": "860:8:14"
                    },
                    {
                        "attributes": {
                            "typeName": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "stringutils",
                                    "referencedDeclaration": 12992,
                                    "type": "library stringutils"
                                },
                                "id": 1321,
                                "name": "UserDefinedTypeName",
                                "src": "884:11:14"
                            }
                        ],
                        "id": 1322,
                        "name": "UsingForDirective",
                        "src": "878:24:14"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Math",
                                    "referencedDeclaration": 10483,
                                    "type": "library Math"
                                },
                                "id": 1323,
                                "name": "UserDefinedTypeName",
                                "src": "914:4:14"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 1324,
                                "name": "ElementaryTypeName",
                                "src": "923:7:14"
                            }
                        ],
                        "id": 1325,
                        "name": "UsingForDirective",
                        "src": "908:23:14"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "FixedPoint",
                                    "referencedDeclaration": 8909,
                                    "type": "library FixedPoint"
                                },
                                "id": 1326,
                                "name": "UserDefinedTypeName",
                                "src": "943:10:14"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 1327,
                                "name": "ElementaryTypeName",
                                "src": "958:7:14"
                            }
                        ],
                        "id": 1328,
                        "name": "UsingForDirective",
                        "src": "937:29:14"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "LogExpMath",
                                    "referencedDeclaration": 10189,
                                    "type": "library LogExpMath"
                                },
                                "id": 1329,
                                "name": "UserDefinedTypeName",
                                "src": "978:10:14"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 1330,
                                "name": "ElementaryTypeName",
                                "src": "993:7:14"
                            }
                        ],
                        "id": 1331,
                        "name": "UsingForDirective",
                        "src": "972:29:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "factory",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract ViaFactory",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ViaFactory",
                                    "referencedDeclaration": 8402,
                                    "type": "contract ViaFactory"
                                },
                                "id": 1332,
                                "name": "UserDefinedTypeName",
                                "src": "1038:10:14"
                            }
                        ],
                        "id": 1333,
                        "name": "VariableDeclaration",
                        "src": "1038:26:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "rates",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract VerifiedRates",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "VerifiedRates",
                                    "referencedDeclaration": 8061,
                                    "type": "contract VerifiedRates"
                                },
                                "id": 1334,
                                "name": "UserDefinedTypeName",
                                "src": "1073:13:14"
                            }
                        ],
                        "id": 1335,
                        "name": "VariableDeclaration",
                        "src": "1073:27:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "oracle",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract ViaOracle",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ViaOracle",
                                    "referencedDeclaration": 8427,
                                    "type": "contract ViaOracle"
                                },
                                "id": 1336,
                                "name": "UserDefinedTypeName",
                                "src": "1123:9:14"
                            }
                        ],
                        "id": 1337,
                        "name": "VariableDeclaration",
                        "src": "1123:24:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "bondCurrency",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "bytes32",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "bytes32",
                                    "type": "bytes32"
                                },
                                "id": 1338,
                                "name": "ElementaryTypeName",
                                "src": "1198:7:14"
                            }
                        ],
                        "id": 1339,
                        "name": "VariableDeclaration",
                        "src": "1198:27:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "bondName",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "bytes32",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "bytes32",
                                    "type": "bytes32"
                                },
                                "id": 1340,
                                "name": "ElementaryTypeName",
                                "src": "1270:7:14"
                            }
                        ],
                        "id": 1341,
                        "name": "VariableDeclaration",
                        "src": "1270:23:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "token",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 1342,
                                "name": "ElementaryTypeName",
                                "src": "1327:7:14"
                            }
                        ],
                        "id": 1343,
                        "name": "VariableDeclaration",
                        "src": "1327:21:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "issues",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => struct ViaBond.bond))",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => struct ViaBond.bond))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 1344,
                                        "name": "ElementaryTypeName",
                                        "src": "1476:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => struct ViaBond.bond)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 1345,
                                                "name": "ElementaryTypeName",
                                                "src": "1496:7:14"
                                            },
                                            {
                                                "attributes": {
                                                    "contractScope": null,
                                                    "name": "ViaBond.bond",
                                                    "referencedDeclaration": 8078,
                                                    "type": "struct ViaBond.bond"
                                                },
                                                "id": 1346,
                                                "name": "UserDefinedTypeName",
                                                "src": "1507:12:14"
                                            }
                                        ],
                                        "id": 1347,
                                        "name": "Mapping",
                                        "src": "1487:33:14"
                                    }
                                ],
                                "id": 1348,
                                "name": "Mapping",
                                "src": "1468:53:14"
                            }
                        ],
                        "id": 1349,
                        "name": "VariableDeclaration",
                        "src": "1468:67:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "purchases",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => struct ViaBond.bond))",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => struct ViaBond.bond))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 1350,
                                        "name": "ElementaryTypeName",
                                        "src": "1669:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => struct ViaBond.bond)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 1351,
                                                "name": "ElementaryTypeName",
                                                "src": "1689:7:14"
                                            },
                                            {
                                                "attributes": {
                                                    "contractScope": null,
                                                    "name": "ViaBond.bond",
                                                    "referencedDeclaration": 8078,
                                                    "type": "struct ViaBond.bond"
                                                },
                                                "id": 1352,
                                                "name": "UserDefinedTypeName",
                                                "src": "1700:12:14"
                                            }
                                        ],
                                        "id": 1353,
                                        "name": "Mapping",
                                        "src": "1680:33:14"
                                    }
                                ],
                                "id": 1354,
                                "name": "Mapping",
                                "src": "1661:53:14"
                            }
                        ],
                        "id": 1355,
                        "name": "VariableDeclaration",
                        "src": "1661:70:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "bondsIssued",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address[]",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "length": null,
                                    "type": "address[]"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 1356,
                                        "name": "ElementaryTypeName",
                                        "src": "1834:7:14"
                                    }
                                ],
                                "id": 1357,
                                "name": "ArrayTypeName",
                                "src": "1834:9:14"
                            }
                        ],
                        "id": 1358,
                        "name": "VariableDeclaration",
                        "src": "1834:28:14"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "BondIssued"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 1374,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1359,
                                                "name": "ElementaryTypeName",
                                                "src": "1943:7:14"
                                            }
                                        ],
                                        "id": 1360,
                                        "name": "VariableDeclaration",
                                        "src": "1943:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "token",
                                            "scope": 1374,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1361,
                                                "name": "ElementaryTypeName",
                                                "src": "1966:7:14"
                                            }
                                        ],
                                        "id": 1362,
                                        "name": "VariableDeclaration",
                                        "src": "1966:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "bondName",
                                            "scope": 1374,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1363,
                                                "name": "ElementaryTypeName",
                                                "src": "1981:7:14"
                                            }
                                        ],
                                        "id": 1364,
                                        "name": "VariableDeclaration",
                                        "src": "1981:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 1374,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1365,
                                                "name": "ElementaryTypeName",
                                                "src": "1999:7:14"
                                            }
                                        ],
                                        "id": 1366,
                                        "name": "VariableDeclaration",
                                        "src": "1999:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 1374,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1367,
                                                "name": "ElementaryTypeName",
                                                "src": "2015:7:14"
                                            }
                                        ],
                                        "id": 1368,
                                        "name": "VariableDeclaration",
                                        "src": "2015:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "collateralAmount",
                                            "scope": 1374,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1369,
                                                "name": "ElementaryTypeName",
                                                "src": "2033:7:14"
                                            }
                                        ],
                                        "id": 1370,
                                        "name": "VariableDeclaration",
                                        "src": "2033:24:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "issueTime",
                                            "scope": 1374,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1371,
                                                "name": "ElementaryTypeName",
                                                "src": "2059:7:14"
                                            }
                                        ],
                                        "id": 1372,
                                        "name": "VariableDeclaration",
                                        "src": "2059:17:14"
                                    }
                                ],
                                "id": 1373,
                                "name": "ParameterList",
                                "src": "1942:135:14"
                            }
                        ],
                        "id": 1374,
                        "name": "EventDefinition",
                        "src": "1926:152:14"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "BondRedeemed"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 1388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1375,
                                                "name": "ElementaryTypeName",
                                                "src": "2103:7:14"
                                            }
                                        ],
                                        "id": 1376,
                                        "name": "VariableDeclaration",
                                        "src": "2103:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "token",
                                            "scope": 1388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1377,
                                                "name": "ElementaryTypeName",
                                                "src": "2126:7:14"
                                            }
                                        ],
                                        "id": 1378,
                                        "name": "VariableDeclaration",
                                        "src": "2126:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenAmount",
                                            "scope": 1388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1379,
                                                "name": "ElementaryTypeName",
                                                "src": "2141:7:14"
                                            }
                                        ],
                                        "id": 1380,
                                        "name": "VariableDeclaration",
                                        "src": "2141:19:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenName",
                                            "scope": 1388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1381,
                                                "name": "ElementaryTypeName",
                                                "src": "2162:7:14"
                                            }
                                        ],
                                        "id": 1382,
                                        "name": "VariableDeclaration",
                                        "src": "2162:17:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 1388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1383,
                                                "name": "ElementaryTypeName",
                                                "src": "2181:7:14"
                                            }
                                        ],
                                        "id": 1384,
                                        "name": "VariableDeclaration",
                                        "src": "2181:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 1388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1385,
                                                "name": "ElementaryTypeName",
                                                "src": "2197:7:14"
                                            }
                                        ],
                                        "id": 1386,
                                        "name": "VariableDeclaration",
                                        "src": "2197:16:14"
                                    }
                                ],
                                "id": 1387,
                                "name": "ParameterList",
                                "src": "2102:112:14"
                            }
                        ],
                        "id": 1388,
                        "name": "EventDefinition",
                        "src": "2084:131:14"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "BondPurchased"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 1404,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1389,
                                                "name": "ElementaryTypeName",
                                                "src": "2241:7:14"
                                            }
                                        ],
                                        "id": 1390,
                                        "name": "VariableDeclaration",
                                        "src": "2241:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "token",
                                            "scope": 1404,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1391,
                                                "name": "ElementaryTypeName",
                                                "src": "2264:7:14"
                                            }
                                        ],
                                        "id": 1392,
                                        "name": "VariableDeclaration",
                                        "src": "2264:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "bondName",
                                            "scope": 1404,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1393,
                                                "name": "ElementaryTypeName",
                                                "src": "2279:7:14"
                                            }
                                        ],
                                        "id": 1394,
                                        "name": "VariableDeclaration",
                                        "src": "2279:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 1404,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1395,
                                                "name": "ElementaryTypeName",
                                                "src": "2297:7:14"
                                            }
                                        ],
                                        "id": 1396,
                                        "name": "VariableDeclaration",
                                        "src": "2297:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 1404,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1397,
                                                "name": "ElementaryTypeName",
                                                "src": "2313:7:14"
                                            }
                                        ],
                                        "id": 1398,
                                        "name": "VariableDeclaration",
                                        "src": "2313:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "paidInAmount",
                                            "scope": 1404,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1399,
                                                "name": "ElementaryTypeName",
                                                "src": "2331:7:14"
                                            }
                                        ],
                                        "id": 1400,
                                        "name": "VariableDeclaration",
                                        "src": "2331:20:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "purchaseTime",
                                            "scope": 1404,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1401,
                                                "name": "ElementaryTypeName",
                                                "src": "2353:7:14"
                                            }
                                        ],
                                        "id": 1402,
                                        "name": "VariableDeclaration",
                                        "src": "2353:20:14"
                                    }
                                ],
                                "id": 1403,
                                "name": "ParameterList",
                                "src": "2240:134:14"
                            }
                        ],
                        "id": 1404,
                        "name": "EventDefinition",
                        "src": "2221:154:14"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "BondLiquidated"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "party",
                                            "scope": 1418,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1405,
                                                "name": "ElementaryTypeName",
                                                "src": "2402:7:14"
                                            }
                                        ],
                                        "id": 1406,
                                        "name": "VariableDeclaration",
                                        "src": "2402:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "token",
                                            "scope": 1418,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1407,
                                                "name": "ElementaryTypeName",
                                                "src": "2425:7:14"
                                            }
                                        ],
                                        "id": 1408,
                                        "name": "VariableDeclaration",
                                        "src": "2425:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenAmount",
                                            "scope": 1418,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1409,
                                                "name": "ElementaryTypeName",
                                                "src": "2440:7:14"
                                            }
                                        ],
                                        "id": 1410,
                                        "name": "VariableDeclaration",
                                        "src": "2440:19:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenName",
                                            "scope": 1418,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1411,
                                                "name": "ElementaryTypeName",
                                                "src": "2461:7:14"
                                            }
                                        ],
                                        "id": 1412,
                                        "name": "VariableDeclaration",
                                        "src": "2461:17:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 1418,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1413,
                                                "name": "ElementaryTypeName",
                                                "src": "2480:7:14"
                                            }
                                        ],
                                        "id": 1414,
                                        "name": "VariableDeclaration",
                                        "src": "2480:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "currency",
                                            "scope": 1418,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1415,
                                                "name": "ElementaryTypeName",
                                                "src": "2496:7:14"
                                            }
                                        ],
                                        "id": 1416,
                                        "name": "VariableDeclaration",
                                        "src": "2496:16:14"
                                    }
                                ],
                                "id": 1417,
                                "name": "ParameterList",
                                "src": "2401:112:14"
                            }
                        ],
                        "id": 1418,
                        "name": "EventDefinition",
                        "src": "2381:133:14"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "lock",
                            "scope": 3597,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => bool)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => bool)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 1419,
                                        "name": "ElementaryTypeName",
                                        "src": "2543:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "name": "bool",
                                            "type": "bool"
                                        },
                                        "id": 1420,
                                        "name": "ElementaryTypeName",
                                        "src": "2554:4:14"
                                    }
                                ],
                                "id": 1421,
                                "name": "Mapping",
                                "src": "2535:24:14"
                            }
                        ],
                        "id": 1422,
                        "name": "VariableDeclaration",
                        "src": "2535:37:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "initialize",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_name",
                                            "scope": 1486,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1423,
                                                "name": "ElementaryTypeName",
                                                "src": "2627:7:14"
                                            }
                                        ],
                                        "id": 1424,
                                        "name": "VariableDeclaration",
                                        "src": "2627:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_currency",
                                            "scope": 1486,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1425,
                                                "name": "ElementaryTypeName",
                                                "src": "2642:7:14"
                                            }
                                        ],
                                        "id": 1426,
                                        "name": "VariableDeclaration",
                                        "src": "2642:17:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_owner",
                                            "scope": 1486,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1427,
                                                "name": "ElementaryTypeName",
                                                "src": "2661:7:14"
                                            }
                                        ],
                                        "id": 1428,
                                        "name": "VariableDeclaration",
                                        "src": "2661:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_oracle",
                                            "scope": 1486,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1429,
                                                "name": "ElementaryTypeName",
                                                "src": "2677:7:14"
                                            }
                                        ],
                                        "id": 1430,
                                        "name": "VariableDeclaration",
                                        "src": "2677:15:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_token",
                                            "scope": 1486,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1431,
                                                "name": "ElementaryTypeName",
                                                "src": "2694:7:14"
                                            }
                                        ],
                                        "id": 1432,
                                        "name": "VariableDeclaration",
                                        "src": "2694:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_fee",
                                            "scope": 1486,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1433,
                                                "name": "ElementaryTypeName",
                                                "src": "2710:7:14"
                                            }
                                        ],
                                        "id": 1434,
                                        "name": "VariableDeclaration",
                                        "src": "2710:12:14"
                                    }
                                ],
                                "id": 1435,
                                "name": "ParameterList",
                                "src": "2626:97:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 1438,
                                "name": "ParameterList",
                                "src": "2743:0:14"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 453,
                                            "type": "modifier ()",
                                            "value": "initializer"
                                        },
                                        "id": 1436,
                                        "name": "Identifier",
                                        "src": "2731:11:14"
                                    }
                                ],
                                "id": 1437,
                                "name": "ModifierInvocation",
                                "src": "2731:11:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "initialize",
                                                            "referencedDeclaration": 251,
                                                            "type": "function (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 340,
                                                                    "type": "type(contract Ownable)",
                                                                    "value": "Ownable"
                                                                },
                                                                "id": 1439,
                                                                "name": "Identifier",
                                                                "src": "2754:7:14"
                                                            }
                                                        ],
                                                        "id": 1441,
                                                        "name": "MemberAccess",
                                                        "src": "2754:18:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1428,
                                                            "type": "address",
                                                            "value": "_owner"
                                                        },
                                                        "id": 1442,
                                                        "name": "Identifier",
                                                        "src": "2773:6:14"
                                                    }
                                                ],
                                                "id": 1443,
                                                "name": "FunctionCall",
                                                "src": "2754:26:14"
                                            }
                                        ],
                                        "id": 1444,
                                        "name": "ExpressionStatement",
                                        "src": "2754:26:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract ViaFactory"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1333,
                                                            "type": "contract ViaFactory",
                                                            "value": "factory"
                                                        },
                                                        "id": 1445,
                                                        "name": "Identifier",
                                                        "src": "2791:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract ViaFactory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8402,
                                                                    "type": "type(contract ViaFactory)",
                                                                    "value": "ViaFactory"
                                                                },
                                                                "id": 1446,
                                                                "name": "Identifier",
                                                                "src": "2801:10:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 1447,
                                                                        "name": "Identifier",
                                                                        "src": "2812:3:14"
                                                                    }
                                                                ],
                                                                "id": 1448,
                                                                "name": "MemberAccess",
                                                                "src": "2812:10:14"
                                                            }
                                                        ],
                                                        "id": 1449,
                                                        "name": "FunctionCall",
                                                        "src": "2801:22:14"
                                                    }
                                                ],
                                                "id": 1450,
                                                "name": "Assignment",
                                                "src": "2791:32:14"
                                            }
                                        ],
                                        "id": 1451,
                                        "name": "ExpressionStatement",
                                        "src": "2791:32:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract ViaOracle"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1337,
                                                            "type": "contract ViaOracle",
                                                            "value": "oracle"
                                                        },
                                                        "id": 1452,
                                                        "name": "Identifier",
                                                        "src": "2834:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract ViaOracle",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8427,
                                                                    "type": "type(contract ViaOracle)",
                                                                    "value": "ViaOracle"
                                                                },
                                                                "id": 1453,
                                                                "name": "Identifier",
                                                                "src": "2843:9:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1430,
                                                                    "type": "address",
                                                                    "value": "_oracle"
                                                                },
                                                                "id": 1454,
                                                                "name": "Identifier",
                                                                "src": "2853:7:14"
                                                            }
                                                        ],
                                                        "id": 1455,
                                                        "name": "FunctionCall",
                                                        "src": "2843:18:14"
                                                    }
                                                ],
                                                "id": 1456,
                                                "name": "Assignment",
                                                "src": "2834:27:14"
                                            }
                                        ],
                                        "id": 1457,
                                        "name": "ExpressionStatement",
                                        "src": "2834:27:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12127,
                                                            "type": "function (string memory)",
                                                            "value": "setName"
                                                        },
                                                        "id": 1458,
                                                        "name": "Identifier",
                                                        "src": "2872:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "string memory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(string storage pointer)",
                                                                    "value": "string"
                                                                },
                                                                "id": 1459,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "2880:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodePacked",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function () pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 12994,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 1460,
                                                                                "name": "Identifier",
                                                                                "src": "2887:3:14"
                                                                            }
                                                                        ],
                                                                        "id": 1461,
                                                                        "name": "MemberAccess",
                                                                        "src": "2887:16:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1424,
                                                                            "type": "bytes32",
                                                                            "value": "_name"
                                                                        },
                                                                        "id": 1462,
                                                                        "name": "Identifier",
                                                                        "src": "2904:5:14"
                                                                    }
                                                                ],
                                                                "id": 1463,
                                                                "name": "FunctionCall",
                                                                "src": "2887:23:14"
                                                            }
                                                        ],
                                                        "id": 1464,
                                                        "name": "FunctionCall",
                                                        "src": "2880:31:14"
                                                    }
                                                ],
                                                "id": 1465,
                                                "name": "FunctionCall",
                                                "src": "2872:40:14"
                                            }
                                        ],
                                        "id": 1466,
                                        "name": "ExpressionStatement",
                                        "src": "2872:40:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1341,
                                                            "type": "bytes32",
                                                            "value": "bondName"
                                                        },
                                                        "id": 1467,
                                                        "name": "Identifier",
                                                        "src": "2967:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1424,
                                                            "type": "bytes32",
                                                            "value": "_name"
                                                        },
                                                        "id": 1468,
                                                        "name": "Identifier",
                                                        "src": "2978:5:14"
                                                    }
                                                ],
                                                "id": 1469,
                                                "name": "Assignment",
                                                "src": "2967:16:14"
                                            }
                                        ],
                                        "id": 1470,
                                        "name": "ExpressionStatement",
                                        "src": "2967:16:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1339,
                                                            "type": "bytes32",
                                                            "value": "bondCurrency"
                                                        },
                                                        "id": 1471,
                                                        "name": "Identifier",
                                                        "src": "2994:12:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1426,
                                                            "type": "bytes32",
                                                            "value": "_currency"
                                                        },
                                                        "id": 1472,
                                                        "name": "Identifier",
                                                        "src": "3009:9:14"
                                                    }
                                                ],
                                                "id": 1473,
                                                "name": "Assignment",
                                                "src": "2994:24:14"
                                            }
                                        ],
                                        "id": 1474,
                                        "name": "ExpressionStatement",
                                        "src": "2994:24:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1343,
                                                            "type": "address",
                                                            "value": "token"
                                                        },
                                                        "id": 1475,
                                                        "name": "Identifier",
                                                        "src": "3029:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1432,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 1476,
                                                        "name": "Identifier",
                                                        "src": "3037:6:14"
                                                    }
                                                ],
                                                "id": 1477,
                                                "name": "Assignment",
                                                "src": "3029:14:14"
                                            }
                                        ],
                                        "id": 1478,
                                        "name": "ExpressionStatement",
                                        "src": "3029:14:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract VerifiedRates"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1335,
                                                            "type": "contract VerifiedRates",
                                                            "value": "rates"
                                                        },
                                                        "id": 1479,
                                                        "name": "Identifier",
                                                        "src": "3054:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract VerifiedRates",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8061,
                                                                    "type": "type(contract VerifiedRates)",
                                                                    "value": "VerifiedRates"
                                                                },
                                                                "id": 1480,
                                                                "name": "Identifier",
                                                                "src": "3062:13:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1434,
                                                                    "type": "address",
                                                                    "value": "_fee"
                                                                },
                                                                "id": 1481,
                                                                "name": "Identifier",
                                                                "src": "3076:4:14"
                                                            }
                                                        ],
                                                        "id": 1482,
                                                        "name": "FunctionCall",
                                                        "src": "3062:19:14"
                                                    }
                                                ],
                                                "id": 1483,
                                                "name": "Assignment",
                                                "src": "3054:27:14"
                                            }
                                        ],
                                        "id": 1484,
                                        "name": "ExpressionStatement",
                                        "src": "3054:27:14"
                                    }
                                ],
                                "id": 1485,
                                "name": "Block",
                                "src": "2743:346:14"
                            }
                        ],
                        "id": 1486,
                        "name": "FunctionDefinition",
                        "src": "2607:482:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "requestIssue",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": 8104,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 1536,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1487,
                                                "name": "ElementaryTypeName",
                                                "src": "3119:7:14"
                                            }
                                        ],
                                        "id": 1488,
                                        "name": "VariableDeclaration",
                                        "src": "3119:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 1536,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1489,
                                                "name": "ElementaryTypeName",
                                                "src": "3135:7:14"
                                            }
                                        ],
                                        "id": 1490,
                                        "name": "VariableDeclaration",
                                        "src": "3135:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 1536,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1491,
                                                "name": "ElementaryTypeName",
                                                "src": "3150:7:14"
                                            }
                                        ],
                                        "id": 1492,
                                        "name": "VariableDeclaration",
                                        "src": "3150:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "cashContract",
                                            "scope": 1536,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1493,
                                                "name": "ElementaryTypeName",
                                                "src": "3168:7:14"
                                            }
                                        ],
                                        "id": 1494,
                                        "name": "VariableDeclaration",
                                        "src": "3168:20:14"
                                    }
                                ],
                                "id": 1495,
                                "name": "ParameterList",
                                "src": "3118:71:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 1536,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 1496,
                                                "name": "ElementaryTypeName",
                                                "src": "3207:4:14"
                                            }
                                        ],
                                        "id": 1497,
                                        "name": "VariableDeclaration",
                                        "src": "3207:4:14"
                                    }
                                ],
                                "id": 1498,
                                "name": "ParameterList",
                                "src": "3206:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1499,
                                                        "name": "Identifier",
                                                        "src": "3263:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12542,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 1500,
                                                                "name": "Identifier",
                                                                "src": "3271:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 1501,
                                                                "name": "Literal",
                                                                "src": "3281:5:14"
                                                            }
                                                        ],
                                                        "id": 1502,
                                                        "name": "BinaryOperation",
                                                        "src": "3271:15:14"
                                                    }
                                                ],
                                                "id": 1503,
                                                "name": "FunctionCall",
                                                "src": "3263:24:14"
                                            }
                                        ],
                                        "id": 1504,
                                        "name": "ExpressionStatement",
                                        "src": "3263:24:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1505,
                                                        "name": "Identifier",
                                                        "src": "3393:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1339,
                                                                    "type": "bytes32",
                                                                    "value": "bondCurrency"
                                                                },
                                                                "id": 1506,
                                                                "name": "Identifier",
                                                                "src": "3401:12:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1492,
                                                                    "type": "bytes32",
                                                                    "value": "currency"
                                                                },
                                                                "id": 1507,
                                                                "name": "Identifier",
                                                                "src": "3415:8:14"
                                                            }
                                                        ],
                                                        "id": 1508,
                                                        "name": "BinaryOperation",
                                                        "src": "3401:22:14"
                                                    }
                                                ],
                                                "id": 1509,
                                                "name": "FunctionCall",
                                                "src": "3393:31:14"
                                            }
                                        ],
                                        "id": 1510,
                                        "name": "ExpressionStatement",
                                        "src": "3393:31:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_644b1732b33d16c023028e38764f484db2b866f9a95a2fbc5e349c506f3f5cc8",
                                                                    "typeString": "literal_string \"Unsupported collateral for issue\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1511,
                                                        "name": "Identifier",
                                                        "src": "3525:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1333,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "factory"
                                                                                        },
                                                                                        "id": 1512,
                                                                                        "name": "Identifier",
                                                                                        "src": "3533:7:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1513,
                                                                                "name": "MemberAccess",
                                                                                "src": "3533:15:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13007,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 1514,
                                                                                        "name": "Identifier",
                                                                                        "src": "3549:3:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1515,
                                                                                "name": "MemberAccess",
                                                                                "src": "3549:10:14"
                                                                            }
                                                                        ],
                                                                        "id": 1516,
                                                                        "name": "FunctionCall",
                                                                        "src": "3533:27:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "56696143617368",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaCash\"",
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "id": 1517,
                                                                        "name": "Literal",
                                                                        "src": "3564:9:14"
                                                                    }
                                                                ],
                                                                "id": 1518,
                                                                "name": "BinaryOperation",
                                                                "src": "3533:40:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "checkSupportForToken",
                                                                            "referencedDeclaration": 8394,
                                                                            "type": "function (bytes32) view external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 1519,
                                                                                "name": "Identifier",
                                                                                "src": "3577:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1520,
                                                                        "name": "MemberAccess",
                                                                        "src": "3577:28:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1492,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 1521,
                                                                        "name": "Identifier",
                                                                        "src": "3606:8:14"
                                                                    }
                                                                ],
                                                                "id": 1522,
                                                                "name": "FunctionCall",
                                                                "src": "3577:38:14"
                                                            }
                                                        ],
                                                        "id": 1523,
                                                        "name": "BinaryOperation",
                                                        "src": "3533:82:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "556e737570706f7274656420636f6c6c61746572616c20666f72206973737565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Unsupported collateral for issue\"",
                                                            "value": "Unsupported collateral for issue"
                                                        },
                                                        "id": 1524,
                                                        "name": "Literal",
                                                        "src": "3617:34:14"
                                                    }
                                                ],
                                                "id": 1525,
                                                "name": "FunctionCall",
                                                "src": "3525:127:14"
                                            }
                                        ],
                                        "id": 1526,
                                        "name": "ExpressionStatement",
                                        "src": "3525:127:14"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 1498
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1662,
                                                                    "type": "function (uint256,address,bytes32,address) returns (bool)",
                                                                    "value": "issue"
                                                                },
                                                                "id": 1527,
                                                                "name": "Identifier",
                                                                "src": "3670:5:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1488,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 1528,
                                                                "name": "Identifier",
                                                                "src": "3676:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1490,
                                                                    "type": "address",
                                                                    "value": "payer"
                                                                },
                                                                "id": 1529,
                                                                "name": "Identifier",
                                                                "src": "3684:5:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1492,
                                                                    "type": "bytes32",
                                                                    "value": "currency"
                                                                },
                                                                "id": 1530,
                                                                "name": "Identifier",
                                                                "src": "3691:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1494,
                                                                    "type": "address",
                                                                    "value": "cashContract"
                                                                },
                                                                "id": 1531,
                                                                "name": "Identifier",
                                                                "src": "3701:12:14"
                                                            }
                                                        ],
                                                        "id": 1532,
                                                        "name": "FunctionCall",
                                                        "src": "3670:44:14"
                                                    }
                                                ],
                                                "id": 1533,
                                                "name": "TupleExpression",
                                                "src": "3669:46:14"
                                            }
                                        ],
                                        "id": 1534,
                                        "name": "Return",
                                        "src": "3663:52:14"
                                    }
                                ],
                                "id": 1535,
                                "name": "Block",
                                "src": "3212:511:14"
                            }
                        ],
                        "id": 1536,
                        "name": "FunctionDefinition",
                        "src": "3097:626:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "issue",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 1662,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1537,
                                                "name": "ElementaryTypeName",
                                                "src": "3844:7:14"
                                            }
                                        ],
                                        "id": 1538,
                                        "name": "VariableDeclaration",
                                        "src": "3844:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 1662,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1539,
                                                "name": "ElementaryTypeName",
                                                "src": "3860:7:14"
                                            }
                                        ],
                                        "id": 1540,
                                        "name": "VariableDeclaration",
                                        "src": "3860:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 1662,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1541,
                                                "name": "ElementaryTypeName",
                                                "src": "3875:7:14"
                                            }
                                        ],
                                        "id": 1542,
                                        "name": "VariableDeclaration",
                                        "src": "3875:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "cashContract",
                                            "scope": 1662,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1543,
                                                "name": "ElementaryTypeName",
                                                "src": "3893:7:14"
                                            }
                                        ],
                                        "id": 1544,
                                        "name": "VariableDeclaration",
                                        "src": "3893:20:14"
                                    }
                                ],
                                "id": 1545,
                                "name": "ParameterList",
                                "src": "3843:71:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 1662,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 1546,
                                                "name": "ElementaryTypeName",
                                                "src": "3931:4:14"
                                            }
                                        ],
                                        "id": 1547,
                                        "name": "VariableDeclaration",
                                        "src": "3931:4:14"
                                    }
                                ],
                                "id": 1548,
                                "name": "ParameterList",
                                "src": "3930:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bytes32",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getType",
                                                                    "referencedDeclaration": 8240,
                                                                    "type": "function (address) view external returns (bytes32)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1333,
                                                                            "type": "contract ViaFactory",
                                                                            "value": "factory"
                                                                        },
                                                                        "id": 1549,
                                                                        "name": "Identifier",
                                                                        "src": "4033:7:14"
                                                                    }
                                                                ],
                                                                "id": 1550,
                                                                "name": "MemberAccess",
                                                                "src": "4033:15:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1544,
                                                                    "type": "address",
                                                                    "value": "cashContract"
                                                                },
                                                                "id": 1551,
                                                                "name": "Identifier",
                                                                "src": "4049:12:14"
                                                            }
                                                        ],
                                                        "id": 1552,
                                                        "name": "FunctionCall",
                                                        "src": "4033:29:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "56696143617368",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"ViaCash\"",
                                                            "value": "ViaCash"
                                                        },
                                                        "id": 1553,
                                                        "name": "Literal",
                                                        "src": "4064:9:14"
                                                    }
                                                ],
                                                "id": 1554,
                                                "name": "BinaryOperation",
                                                "src": "4033:40:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "!",
                                                                    "prefix": true,
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "requestAddToBalance",
                                                                                    "referencedDeclaration": 8180,
                                                                                    "type": "function (uint256,address) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "contract ViaCash",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8212,
                                                                                                    "type": "type(contract ViaCash)",
                                                                                                    "value": "ViaCash"
                                                                                                },
                                                                                                "id": 1555,
                                                                                                "name": "Identifier",
                                                                                                "src": "4093:7:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1544,
                                                                                                    "type": "address",
                                                                                                    "value": "cashContract"
                                                                                                },
                                                                                                "id": 1556,
                                                                                                "name": "Identifier",
                                                                                                "src": "4101:12:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 1557,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "4093:21:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1558,
                                                                                "name": "MemberAccess",
                                                                                "src": "4093:41:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1538,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 1559,
                                                                                "name": "Identifier",
                                                                                "src": "4135:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1540,
                                                                                    "type": "address",
                                                                                    "value": "payer"
                                                                                },
                                                                                "id": 1560,
                                                                                "name": "Identifier",
                                                                                "src": "4143:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 1561,
                                                                        "name": "FunctionCall",
                                                                        "src": "4093:56:14"
                                                                    }
                                                                ],
                                                                "id": 1562,
                                                                "name": "UnaryOperation",
                                                                "src": "4092:57:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "functionReturnParameters": 1548
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "66616c7365",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "bool",
                                                                                    "type": "bool",
                                                                                    "value": "false"
                                                                                },
                                                                                "id": 1563,
                                                                                "name": "Literal",
                                                                                "src": "4176:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 1564,
                                                                        "name": "Return",
                                                                        "src": "4169:12:14"
                                                                    }
                                                                ],
                                                                "id": 1565,
                                                                "name": "Block",
                                                                "src": "4150:47:14"
                                                            }
                                                        ],
                                                        "id": 1566,
                                                        "name": "IfStatement",
                                                        "src": "4089:108:14"
                                                    }
                                                ],
                                                "id": 1567,
                                                "name": "Block",
                                                "src": "4074:134:14"
                                            },
                                            {
                                                "attributes": {
                                                    "falseBody": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "checkSupportForToken",
                                                                            "referencedDeclaration": 8394,
                                                                            "type": "function (bytes32) view external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 1568,
                                                                                "name": "Identifier",
                                                                                "src": "4226:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1569,
                                                                        "name": "MemberAccess",
                                                                        "src": "4226:28:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1542,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 1570,
                                                                        "name": "Identifier",
                                                                        "src": "4255:8:14"
                                                                    }
                                                                ],
                                                                "id": 1571,
                                                                "name": "FunctionCall",
                                                                "src": "4226:38:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 1572,
                                                                "name": "Literal",
                                                                "src": "4266:4:14"
                                                            }
                                                        ],
                                                        "id": 1573,
                                                        "name": "BinaryOperation",
                                                        "src": "4226:44:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferFrom",
                                                                                    "referencedDeclaration": 392,
                                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 409,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 1574,
                                                                                                "name": "Identifier",
                                                                                                "src": "4360:6:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1544,
                                                                                                    "type": "address",
                                                                                                    "value": "cashContract"
                                                                                                },
                                                                                                "id": 1575,
                                                                                                "name": "Identifier",
                                                                                                "src": "4367:12:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 1576,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "4360:20:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1577,
                                                                                "name": "MemberAccess",
                                                                                "src": "4360:33:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1540,
                                                                                    "type": "address",
                                                                                    "value": "payer"
                                                                                },
                                                                                "id": 1578,
                                                                                "name": "Identifier",
                                                                                "src": "4394:5:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_Bond_$3597",
                                                                                                    "typeString": "contract Bond"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 1579,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "4401:7:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13075,
                                                                                            "type": "contract Bond",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 1580,
                                                                                        "name": "Identifier",
                                                                                        "src": "4409:4:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1581,
                                                                                "name": "FunctionCall",
                                                                                "src": "4401:13:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1538,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 1582,
                                                                                "name": "Identifier",
                                                                                "src": "4416:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 1583,
                                                                        "name": "FunctionCall",
                                                                        "src": "4360:63:14"
                                                                    }
                                                                ],
                                                                "id": 1584,
                                                                "name": "ExpressionStatement",
                                                                "src": "4360:63:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        1586
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "scalingFactor",
                                                                            "scope": 1600,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "uint256",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "uint256",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "id": 1585,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "4438:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1586,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "4438:21:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3580,
                                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                                    "value": "_computeScalingFactor"
                                                                                },
                                                                                "id": 1587,
                                                                                "name": "Identifier",
                                                                                "src": "4462:21:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "contract IERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 409,
                                                                                            "type": "type(contract IERC20)",
                                                                                            "value": "IERC20"
                                                                                        },
                                                                                        "id": 1588,
                                                                                        "name": "Identifier",
                                                                                        "src": "4484:6:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1544,
                                                                                            "type": "address",
                                                                                            "value": "cashContract"
                                                                                        },
                                                                                        "id": 1589,
                                                                                        "name": "Identifier",
                                                                                        "src": "4491:12:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1590,
                                                                                "name": "FunctionCall",
                                                                                "src": "4484:20:14"
                                                                            }
                                                                        ],
                                                                        "id": 1591,
                                                                        "name": "FunctionCall",
                                                                        "src": "4462:43:14"
                                                                    }
                                                                ],
                                                                "id": 1592,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "4438:67:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1538,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 1593,
                                                                                "name": "Identifier",
                                                                                "src": "4520:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3596,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                            "value": "_upscale"
                                                                                        },
                                                                                        "id": 1594,
                                                                                        "name": "Identifier",
                                                                                        "src": "4529:8:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1538,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 1595,
                                                                                        "name": "Identifier",
                                                                                        "src": "4538:6:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1586,
                                                                                            "type": "uint256",
                                                                                            "value": "scalingFactor"
                                                                                        },
                                                                                        "id": 1596,
                                                                                        "name": "Identifier",
                                                                                        "src": "4546:13:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1597,
                                                                                "name": "FunctionCall",
                                                                                "src": "4529:31:14"
                                                                            }
                                                                        ],
                                                                        "id": 1598,
                                                                        "name": "Assignment",
                                                                        "src": "4520:40:14"
                                                                    }
                                                                ],
                                                                "id": 1599,
                                                                "name": "ExpressionStatement",
                                                                "src": "4520:40:14"
                                                            }
                                                        ],
                                                        "id": 1600,
                                                        "name": "Block",
                                                        "src": "4271:301:14"
                                                    }
                                                ],
                                                "id": 1601,
                                                "name": "IfStatement",
                                                "src": "4223:349:14"
                                            }
                                        ],
                                        "id": 1602,
                                        "name": "IfStatement",
                                        "src": "4030:542:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1604
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "parValue",
                                                    "scope": 1661,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 1603,
                                                        "name": "ElementaryTypeName",
                                                        "src": "4628:7:14"
                                                    }
                                                ],
                                                "id": 1604,
                                                "name": "VariableDeclaration",
                                                "src": "4628:16:14"
                                            }
                                        ],
                                        "id": 1605,
                                        "name": "VariableDeclarationStatement",
                                        "src": "4628:16:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "!=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                            "typeString": "literal_string \"ViaCash\""
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getTokenByNameType",
                                                                    "referencedDeclaration": 8276,
                                                                    "type": "function (bytes32,bytes32) view external returns (address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1333,
                                                                            "type": "contract ViaFactory",
                                                                            "value": "factory"
                                                                        },
                                                                        "id": 1606,
                                                                        "name": "Identifier",
                                                                        "src": "4658:7:14"
                                                                    }
                                                                ],
                                                                "id": 1607,
                                                                "name": "MemberAccess",
                                                                "src": "4658:26:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1542,
                                                                    "type": "bytes32",
                                                                    "value": "currency"
                                                                },
                                                                "id": 1608,
                                                                "name": "Identifier",
                                                                "src": "4685:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "56696143617368",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"ViaCash\"",
                                                                    "value": "ViaCash"
                                                                },
                                                                "id": 1609,
                                                                "name": "Literal",
                                                                "src": "4695:9:14"
                                                            }
                                                        ],
                                                        "id": 1610,
                                                        "name": "FunctionCall",
                                                        "src": "4658:47:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 1611,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "4707:7:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 1612,
                                                                "name": "Literal",
                                                                "src": "4715:3:14"
                                                            }
                                                        ],
                                                        "id": 1613,
                                                        "name": "FunctionCall",
                                                        "src": "4707:12:14"
                                                    }
                                                ],
                                                "id": 1614,
                                                "name": "BinaryOperation",
                                                "src": "4658:61:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1604,
                                                                    "type": "uint256",
                                                                    "value": "parValue"
                                                                },
                                                                "id": 1615,
                                                                "name": "Identifier",
                                                                "src": "4972:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "mulDown",
                                                                            "referencedDeclaration": 8604,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "type": "type(library FixedPoint)",
                                                                                    "value": "FixedPoint"
                                                                                },
                                                                                "id": 1616,
                                                                                "name": "Identifier",
                                                                                "src": "4983:10:14"
                                                                            }
                                                                        ],
                                                                        "id": 1617,
                                                                        "name": "MemberAccess",
                                                                        "src": "4983:18:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_2a30ae68ef41453c4785709d2ce90b5b4f47543810125db1fedbf78bdfa6a766",
                                                                                            "typeString": "literal_string \"ver\""
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "request",
                                                                                    "referencedDeclaration": 8415,
                                                                                    "type": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1337,
                                                                                            "type": "contract ViaOracle",
                                                                                            "value": "oracle"
                                                                                        },
                                                                                        "id": 1618,
                                                                                        "name": "Identifier",
                                                                                        "src": "5002:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1619,
                                                                                "name": "MemberAccess",
                                                                                "src": "5002:14:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1542,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 1620,
                                                                                "name": "Identifier",
                                                                                "src": "5017:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1339,
                                                                                    "type": "bytes32",
                                                                                    "value": "bondCurrency"
                                                                                },
                                                                                "id": 1621,
                                                                                "name": "Identifier",
                                                                                "src": "5027:12:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "766572",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"ver\"",
                                                                                    "value": "ver"
                                                                                },
                                                                                "id": 1622,
                                                                                "name": "Literal",
                                                                                "src": "5041:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 1623,
                                                                        "name": "FunctionCall",
                                                                        "src": "5002:45:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1538,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 1624,
                                                                        "name": "Identifier",
                                                                        "src": "5049:6:14"
                                                                    }
                                                                ],
                                                                "id": 1625,
                                                                "name": "FunctionCall",
                                                                "src": "4983:73:14"
                                                            }
                                                        ],
                                                        "id": 1626,
                                                        "name": "Assignment",
                                                        "src": "4972:84:14"
                                                    }
                                                ],
                                                "id": 1627,
                                                "name": "ExpressionStatement",
                                                "src": "4972:84:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1604,
                                                                    "type": "uint256",
                                                                    "value": "parValue"
                                                                },
                                                                "id": 1628,
                                                                "name": "Identifier",
                                                                "src": "5245:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "mulDown",
                                                                            "referencedDeclaration": 8604,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8909,
                                                                                    "type": "type(library FixedPoint)",
                                                                                    "value": "FixedPoint"
                                                                                },
                                                                                "id": 1629,
                                                                                "name": "Identifier",
                                                                                "src": "5256:10:14"
                                                                            }
                                                                        ],
                                                                        "id": 1630,
                                                                        "name": "MemberAccess",
                                                                        "src": "5256:18:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                                                            "typeString": "literal_string \"er\""
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "request",
                                                                                    "referencedDeclaration": 8415,
                                                                                    "type": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1337,
                                                                                            "type": "contract ViaOracle",
                                                                                            "value": "oracle"
                                                                                        },
                                                                                        "id": 1631,
                                                                                        "name": "Identifier",
                                                                                        "src": "5275:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1632,
                                                                                "name": "MemberAccess",
                                                                                "src": "5275:14:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1542,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 1633,
                                                                                "name": "Identifier",
                                                                                "src": "5290:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bytes32",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_rational_2_by_1",
                                                                                                    "typeString": "int_const 2"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_rational_5_by_1",
                                                                                                    "typeString": "int_const 5"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "substringinbytes",
                                                                                            "referencedDeclaration": 12782,
                                                                                            "type": "function (bytes32,uint256,uint256) pure returns (bytes32)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1339,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "bondCurrency"
                                                                                                },
                                                                                                "id": 1634,
                                                                                                "name": "Identifier",
                                                                                                "src": "5300:12:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 1635,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "5300:29:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "32",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 2",
                                                                                            "value": "2"
                                                                                        },
                                                                                        "id": 1636,
                                                                                        "name": "Literal",
                                                                                        "src": "5330:1:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "35",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 5",
                                                                                            "value": "5"
                                                                                        },
                                                                                        "id": 1637,
                                                                                        "name": "Literal",
                                                                                        "src": "5332:1:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1638,
                                                                                "name": "FunctionCall",
                                                                                "src": "5300:34:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "6572",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"er\"",
                                                                                    "value": "er"
                                                                                },
                                                                                "id": 1639,
                                                                                "name": "Literal",
                                                                                "src": "5336:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 1640,
                                                                        "name": "FunctionCall",
                                                                        "src": "5275:66:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1538,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 1641,
                                                                        "name": "Identifier",
                                                                        "src": "5343:6:14"
                                                                    }
                                                                ],
                                                                "id": 1642,
                                                                "name": "FunctionCall",
                                                                "src": "5256:94:14"
                                                            }
                                                        ],
                                                        "id": 1643,
                                                        "name": "Assignment",
                                                        "src": "5245:105:14"
                                                    }
                                                ],
                                                "id": 1644,
                                                "name": "ExpressionStatement",
                                                "src": "5245:105:14"
                                            }
                                        ],
                                        "id": 1645,
                                        "name": "IfStatement",
                                        "src": "4655:695:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1604,
                                                            "type": "uint256",
                                                            "value": "parValue"
                                                        },
                                                        "id": 1646,
                                                        "name": "Identifier",
                                                        "src": "5388:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_stringliteral_fe2717aad5755f7dec032c6177c0d8d1b95a78ce0f26cacb98283972ec0e168a",
                                                                            "typeString": "literal_string \"issuing\""
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3468,
                                                                    "type": "function (uint256,bytes32,bytes32) returns (uint256)",
                                                                    "value": "payFee"
                                                                },
                                                                "id": 1647,
                                                                "name": "Identifier",
                                                                "src": "5399:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1604,
                                                                    "type": "uint256",
                                                                    "value": "parValue"
                                                                },
                                                                "id": 1648,
                                                                "name": "Identifier",
                                                                "src": "5406:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1339,
                                                                    "type": "bytes32",
                                                                    "value": "bondCurrency"
                                                                },
                                                                "id": 1649,
                                                                "name": "Identifier",
                                                                "src": "5416:12:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "69737375696e67",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"issuing\"",
                                                                    "value": "issuing"
                                                                },
                                                                "id": 1650,
                                                                "name": "Literal",
                                                                "src": "5430:9:14"
                                                            }
                                                        ],
                                                        "id": 1651,
                                                        "name": "FunctionCall",
                                                        "src": "5399:41:14"
                                                    }
                                                ],
                                                "id": 1652,
                                                "name": "Assignment",
                                                "src": "5388:52:14"
                                            }
                                        ],
                                        "id": 1653,
                                        "name": "ExpressionStatement",
                                        "src": "5388:52:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1738,
                                                            "type": "function (address,uint256,uint256,bytes32)",
                                                            "value": "finallyIssue"
                                                        },
                                                        "id": 1654,
                                                        "name": "Identifier",
                                                        "src": "5497:12:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1540,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 1655,
                                                        "name": "Identifier",
                                                        "src": "5510:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1604,
                                                            "type": "uint256",
                                                            "value": "parValue"
                                                        },
                                                        "id": 1656,
                                                        "name": "Identifier",
                                                        "src": "5517:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1538,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 1657,
                                                        "name": "Identifier",
                                                        "src": "5527:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1542,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 1658,
                                                        "name": "Identifier",
                                                        "src": "5535:8:14"
                                                    }
                                                ],
                                                "id": 1659,
                                                "name": "FunctionCall",
                                                "src": "5497:47:14"
                                            }
                                        ],
                                        "id": 1660,
                                        "name": "ExpressionStatement",
                                        "src": "5497:47:14"
                                    }
                                ],
                                "id": 1661,
                                "name": "Block",
                                "src": "3936:1616:14"
                            }
                        ],
                        "id": 1662,
                        "name": "FunctionDefinition",
                        "src": "3829:1723:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "finallyIssue",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 1738,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1663,
                                                "name": "ElementaryTypeName",
                                                "src": "5663:7:14"
                                            }
                                        ],
                                        "id": 1664,
                                        "name": "VariableDeclaration",
                                        "src": "5663:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "parValue",
                                            "scope": 1738,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1665,
                                                "name": "ElementaryTypeName",
                                                "src": "5678:7:14"
                                            }
                                        ],
                                        "id": 1666,
                                        "name": "VariableDeclaration",
                                        "src": "5678:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "paidInAmount",
                                            "scope": 1738,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1667,
                                                "name": "ElementaryTypeName",
                                                "src": "5696:7:14"
                                            }
                                        ],
                                        "id": 1668,
                                        "name": "VariableDeclaration",
                                        "src": "5696:20:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "paidCurrency",
                                            "scope": 1738,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1669,
                                                "name": "ElementaryTypeName",
                                                "src": "5718:7:14"
                                            }
                                        ],
                                        "id": 1670,
                                        "name": "VariableDeclaration",
                                        "src": "5718:20:14"
                                    }
                                ],
                                "id": 1671,
                                "name": "ParameterList",
                                "src": "5662:77:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 1672,
                                "name": "ParameterList",
                                "src": "5748:0:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1674
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "issueTime",
                                                    "scope": 1737,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 1673,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5759:7:14"
                                                    }
                                                ],
                                                "id": 1674,
                                                "name": "VariableDeclaration",
                                                "src": "5759:17:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13009,
                                                    "type": "uint256",
                                                    "value": "now"
                                                },
                                                "id": 1675,
                                                "name": "Identifier",
                                                "src": "5779:3:14"
                                            }
                                        ],
                                        "id": 1676,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5759:23:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1678
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "issuedBond",
                                                    "scope": 1737,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 1677,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5873:7:14"
                                                    }
                                                ],
                                                "id": 1678,
                                                "name": "VariableDeclaration",
                                                "src": "5873:18:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "createToken",
                                                            "referencedDeclaration": 8327,
                                                            "type": "function (address,address,bytes32,bytes32) external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1333,
                                                                    "type": "contract ViaFactory",
                                                                    "value": "factory"
                                                                },
                                                                "id": 1679,
                                                                "name": "Identifier",
                                                                "src": "5894:7:14"
                                                            }
                                                        ],
                                                        "id": 1680,
                                                        "name": "MemberAccess",
                                                        "src": "5894:19:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1343,
                                                            "type": "address",
                                                            "value": "token"
                                                        },
                                                        "id": 1681,
                                                        "name": "Identifier",
                                                        "src": "5914:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1664,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 1682,
                                                        "name": "Identifier",
                                                        "src": "5921:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1341,
                                                            "type": "bytes32",
                                                            "value": "bondName"
                                                        },
                                                        "id": 1683,
                                                        "name": "Identifier",
                                                        "src": "5928:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bytes32",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 13001,
                                                                    "type": "function (bytes memory) pure returns (bytes32)",
                                                                    "value": "keccak256"
                                                                },
                                                                "id": 1684,
                                                                "name": "Identifier",
                                                                "src": "5938:9:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodePacked",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function () pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 12994,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 1685,
                                                                                "name": "Identifier",
                                                                                "src": "5948:3:14"
                                                                            }
                                                                        ],
                                                                        "id": 1686,
                                                                        "name": "MemberAccess",
                                                                        "src": "5948:16:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1664,
                                                                            "type": "address",
                                                                            "value": "payer"
                                                                        },
                                                                        "id": 1687,
                                                                        "name": "Identifier",
                                                                        "src": "5965:5:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1674,
                                                                            "type": "uint256",
                                                                            "value": "issueTime"
                                                                        },
                                                                        "id": 1688,
                                                                        "name": "Identifier",
                                                                        "src": "5971:9:14"
                                                                    }
                                                                ],
                                                                "id": 1689,
                                                                "name": "FunctionCall",
                                                                "src": "5948:33:14"
                                                            }
                                                        ],
                                                        "id": 1690,
                                                        "name": "FunctionCall",
                                                        "src": "5938:44:14"
                                                    }
                                                ],
                                                "id": 1691,
                                                "name": "FunctionCall",
                                                "src": "5894:89:14"
                                            }
                                        ],
                                        "id": 1692,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5873:110:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1694
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "vt",
                                                    "scope": 1737,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "contract ViaToken",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "contractScope": null,
                                                            "name": "ViaToken",
                                                            "referencedDeclaration": 8499,
                                                            "type": "contract ViaToken"
                                                        },
                                                        "id": 1693,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "6027:8:14"
                                                    }
                                                ],
                                                "id": 1694,
                                                "name": "VariableDeclaration",
                                                "src": "6027:11:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "contract ViaToken",
                                                    "type_conversion": true
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8499,
                                                            "type": "type(contract ViaToken)",
                                                            "value": "ViaToken"
                                                        },
                                                        "id": 1695,
                                                        "name": "Identifier",
                                                        "src": "6041:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1678,
                                                            "type": "address",
                                                            "value": "issuedBond"
                                                        },
                                                        "id": 1696,
                                                        "name": "Identifier",
                                                        "src": "6050:10:14"
                                                    }
                                                ],
                                                "id": 1697,
                                                "name": "FunctionCall",
                                                "src": "6041:20:14"
                                            }
                                        ],
                                        "id": 1698,
                                        "name": "VariableDeclarationStatement",
                                        "src": "6027:34:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "addBalance",
                                                            "referencedDeclaration": 8471,
                                                            "type": "function (address,uint256) external"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1694,
                                                                    "type": "contract ViaToken",
                                                                    "value": "vt"
                                                                },
                                                                "id": 1699,
                                                                "name": "Identifier",
                                                                "src": "6072:2:14"
                                                            }
                                                        ],
                                                        "id": 1701,
                                                        "name": "MemberAccess",
                                                        "src": "6072:13:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1664,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 1702,
                                                        "name": "Identifier",
                                                        "src": "6086:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1666,
                                                            "type": "uint256",
                                                            "value": "parValue"
                                                        },
                                                        "id": 1703,
                                                        "name": "Identifier",
                                                        "src": "6093:8:14"
                                                    }
                                                ],
                                                "id": 1704,
                                                "name": "FunctionCall",
                                                "src": "6072:30:14"
                                            }
                                        ],
                                        "id": 1705,
                                        "name": "ExpressionStatement",
                                        "src": "6072:30:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "addTotalSupply",
                                                            "referencedDeclaration": 8476,
                                                            "type": "function (uint256) external"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1694,
                                                                    "type": "contract ViaToken",
                                                                    "value": "vt"
                                                                },
                                                                "id": 1706,
                                                                "name": "Identifier",
                                                                "src": "6113:2:14"
                                                            }
                                                        ],
                                                        "id": 1708,
                                                        "name": "MemberAccess",
                                                        "src": "6113:17:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1666,
                                                            "type": "uint256",
                                                            "value": "parValue"
                                                        },
                                                        "id": 1709,
                                                        "name": "Identifier",
                                                        "src": "6131:8:14"
                                                    }
                                                ],
                                                "id": 1710,
                                                "name": "FunctionCall",
                                                "src": "6113:27:14"
                                            }
                                        ],
                                        "id": 1711,
                                        "name": "ExpressionStatement",
                                        "src": "6113:27:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "referencedDeclaration": null,
                                                            "type": "function (address) returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1358,
                                                                    "type": "address[] storage ref",
                                                                    "value": "bondsIssued"
                                                                },
                                                                "id": 1712,
                                                                "name": "Identifier",
                                                                "src": "6191:11:14"
                                                            }
                                                        ],
                                                        "id": 1714,
                                                        "name": "MemberAccess",
                                                        "src": "6191:16:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1678,
                                                            "type": "address",
                                                            "value": "issuedBond"
                                                        },
                                                        "id": 1715,
                                                        "name": "Identifier",
                                                        "src": "6208:10:14"
                                                    }
                                                ],
                                                "id": 1716,
                                                "name": "FunctionCall",
                                                "src": "6191:28:14"
                                            }
                                        ],
                                        "id": 1717,
                                        "name": "ExpressionStatement",
                                        "src": "6191:28:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1794,
                                                            "type": "function (address,uint256,uint256,bytes32,uint256,address)",
                                                            "value": "storeIssuedBond"
                                                        },
                                                        "id": 1718,
                                                        "name": "Identifier",
                                                        "src": "6230:15:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1664,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 1719,
                                                        "name": "Identifier",
                                                        "src": "6246:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1666,
                                                            "type": "uint256",
                                                            "value": "parValue"
                                                        },
                                                        "id": 1720,
                                                        "name": "Identifier",
                                                        "src": "6253:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1668,
                                                            "type": "uint256",
                                                            "value": "paidInAmount"
                                                        },
                                                        "id": 1721,
                                                        "name": "Identifier",
                                                        "src": "6263:12:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1670,
                                                            "type": "bytes32",
                                                            "value": "paidCurrency"
                                                        },
                                                        "id": 1722,
                                                        "name": "Identifier",
                                                        "src": "6277:12:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1674,
                                                            "type": "uint256",
                                                            "value": "issueTime"
                                                        },
                                                        "id": 1723,
                                                        "name": "Identifier",
                                                        "src": "6291:9:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1678,
                                                            "type": "address",
                                                            "value": "issuedBond"
                                                        },
                                                        "id": 1724,
                                                        "name": "Identifier",
                                                        "src": "6302:10:14"
                                                    }
                                                ],
                                                "id": 1725,
                                                "name": "FunctionCall",
                                                "src": "6230:83:14"
                                            }
                                        ],
                                        "id": 1726,
                                        "name": "ExpressionStatement",
                                        "src": "6230:83:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1374,
                                                            "type": "function (address,address,bytes32,uint256,bytes32,uint256,uint256)",
                                                            "value": "BondIssued"
                                                        },
                                                        "id": 1727,
                                                        "name": "Identifier",
                                                        "src": "6355:10:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1664,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 1728,
                                                        "name": "Identifier",
                                                        "src": "6366:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1678,
                                                            "type": "address",
                                                            "value": "issuedBond"
                                                        },
                                                        "id": 1729,
                                                        "name": "Identifier",
                                                        "src": "6373:10:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1341,
                                                            "type": "bytes32",
                                                            "value": "bondName"
                                                        },
                                                        "id": 1730,
                                                        "name": "Identifier",
                                                        "src": "6385:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1666,
                                                            "type": "uint256",
                                                            "value": "parValue"
                                                        },
                                                        "id": 1731,
                                                        "name": "Identifier",
                                                        "src": "6395:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1670,
                                                            "type": "bytes32",
                                                            "value": "paidCurrency"
                                                        },
                                                        "id": 1732,
                                                        "name": "Identifier",
                                                        "src": "6405:12:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1668,
                                                            "type": "uint256",
                                                            "value": "paidInAmount"
                                                        },
                                                        "id": 1733,
                                                        "name": "Identifier",
                                                        "src": "6419:12:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1674,
                                                            "type": "uint256",
                                                            "value": "issueTime"
                                                        },
                                                        "id": 1734,
                                                        "name": "Identifier",
                                                        "src": "6433:9:14"
                                                    }
                                                ],
                                                "id": 1735,
                                                "name": "FunctionCall",
                                                "src": "6355:88:14"
                                            }
                                        ],
                                        "id": 1736,
                                        "name": "EmitStatement",
                                        "src": "6350:93:14"
                                    }
                                ],
                                "id": 1737,
                                "name": "Block",
                                "src": "5748:703:14"
                            }
                        ],
                        "id": 1738,
                        "name": "FunctionDefinition",
                        "src": "5641:810:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "storeIssuedBond",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_party",
                                            "scope": 1794,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1739,
                                                "name": "ElementaryTypeName",
                                                "src": "6518:7:14"
                                            }
                                        ],
                                        "id": 1740,
                                        "name": "VariableDeclaration",
                                        "src": "6518:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_parValue",
                                            "scope": 1794,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1741,
                                                "name": "ElementaryTypeName",
                                                "src": "6534:7:14"
                                            }
                                        ],
                                        "id": 1742,
                                        "name": "VariableDeclaration",
                                        "src": "6534:17:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_paidInAmount",
                                            "scope": 1794,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1743,
                                                "name": "ElementaryTypeName",
                                                "src": "6553:7:14"
                                            }
                                        ],
                                        "id": 1744,
                                        "name": "VariableDeclaration",
                                        "src": "6553:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_paidInCurrency",
                                            "scope": 1794,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1745,
                                                "name": "ElementaryTypeName",
                                                "src": "6576:7:14"
                                            }
                                        ],
                                        "id": 1746,
                                        "name": "VariableDeclaration",
                                        "src": "6576:23:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_timeIssued",
                                            "scope": 1794,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1747,
                                                "name": "ElementaryTypeName",
                                                "src": "6601:7:14"
                                            }
                                        ],
                                        "id": 1748,
                                        "name": "VariableDeclaration",
                                        "src": "6601:19:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_issuedBond",
                                            "scope": 1794,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1749,
                                                "name": "ElementaryTypeName",
                                                "src": "6622:7:14"
                                            }
                                        ],
                                        "id": 1750,
                                        "name": "VariableDeclaration",
                                        "src": "6622:19:14"
                                    }
                                ],
                                "id": 1751,
                                "name": "ParameterList",
                                "src": "6517:125:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 1752,
                                "name": "ParameterList",
                                "src": "6651:0:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1754
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "b",
                                                    "scope": 1793,
                                                    "stateVariable": false,
                                                    "storageLocation": "storage",
                                                    "type": "struct ViaBond.bond",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "contractScope": null,
                                                            "name": "bond",
                                                            "referencedDeclaration": 8078,
                                                            "type": "struct ViaBond.bond"
                                                        },
                                                        "id": 1753,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "6662:4:14"
                                                    }
                                                ],
                                                "id": 1754,
                                                "name": "VariableDeclaration",
                                                "src": "6662:14:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct ViaBond.bond storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1349,
                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                    "value": "issues"
                                                                },
                                                                "id": 1755,
                                                                "name": "Identifier",
                                                                "src": "6679:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1740,
                                                                    "type": "address",
                                                                    "value": "_party"
                                                                },
                                                                "id": 1756,
                                                                "name": "Identifier",
                                                                "src": "6686:6:14"
                                                            }
                                                        ],
                                                        "id": 1757,
                                                        "name": "IndexAccess",
                                                        "src": "6679:14:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1750,
                                                            "type": "address",
                                                            "value": "_issuedBond"
                                                        },
                                                        "id": 1758,
                                                        "name": "Identifier",
                                                        "src": "6694:11:14"
                                                    }
                                                ],
                                                "id": 1759,
                                                "name": "IndexAccess",
                                                "src": "6679:27:14"
                                            }
                                        ],
                                        "id": 1760,
                                        "name": "VariableDeclarationStatement",
                                        "src": "6662:44:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "referencedDeclaration": null,
                                                            "type": "function (address) returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "counterParties",
                                                                    "referencedDeclaration": 8077,
                                                                    "type": "address[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1754,
                                                                            "type": "struct ViaBond.bond storage pointer",
                                                                            "value": "b"
                                                                        },
                                                                        "id": 1761,
                                                                        "name": "Identifier",
                                                                        "src": "6717:1:14"
                                                                    }
                                                                ],
                                                                "id": 1764,
                                                                "name": "MemberAccess",
                                                                "src": "6717:16:14"
                                                            }
                                                        ],
                                                        "id": 1765,
                                                        "name": "MemberAccess",
                                                        "src": "6717:21:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1740,
                                                            "type": "address",
                                                            "value": "_party"
                                                        },
                                                        "id": 1766,
                                                        "name": "Identifier",
                                                        "src": "6739:6:14"
                                                    }
                                                ],
                                                "id": 1767,
                                                "name": "FunctionCall",
                                                "src": "6717:29:14"
                                            }
                                        ],
                                        "id": 1768,
                                        "name": "ExpressionStatement",
                                        "src": "6717:29:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "parValue",
                                                            "referencedDeclaration": 8066,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1754,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 1769,
                                                                "name": "Identifier",
                                                                "src": "6757:1:14"
                                                            }
                                                        ],
                                                        "id": 1771,
                                                        "name": "MemberAccess",
                                                        "src": "6757:10:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1742,
                                                            "type": "uint256",
                                                            "value": "_parValue"
                                                        },
                                                        "id": 1772,
                                                        "name": "Identifier",
                                                        "src": "6770:9:14"
                                                    }
                                                ],
                                                "id": 1773,
                                                "name": "Assignment",
                                                "src": "6757:22:14"
                                            }
                                        ],
                                        "id": 1774,
                                        "name": "ExpressionStatement",
                                        "src": "6757:22:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "paidInAmount",
                                                            "referencedDeclaration": 8068,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1754,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 1775,
                                                                "name": "Identifier",
                                                                "src": "6790:1:14"
                                                            }
                                                        ],
                                                        "id": 1777,
                                                        "name": "MemberAccess",
                                                        "src": "6790:14:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1744,
                                                            "type": "uint256",
                                                            "value": "_paidInAmount"
                                                        },
                                                        "id": 1778,
                                                        "name": "Identifier",
                                                        "src": "6807:13:14"
                                                    }
                                                ],
                                                "id": 1779,
                                                "name": "Assignment",
                                                "src": "6790:30:14"
                                            }
                                        ],
                                        "id": 1780,
                                        "name": "ExpressionStatement",
                                        "src": "6790:30:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "paidInCurrency",
                                                            "referencedDeclaration": 8070,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1754,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 1781,
                                                                "name": "Identifier",
                                                                "src": "6831:1:14"
                                                            }
                                                        ],
                                                        "id": 1783,
                                                        "name": "MemberAccess",
                                                        "src": "6831:16:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1746,
                                                            "type": "bytes32",
                                                            "value": "_paidInCurrency"
                                                        },
                                                        "id": 1784,
                                                        "name": "Identifier",
                                                        "src": "6850:15:14"
                                                    }
                                                ],
                                                "id": 1785,
                                                "name": "Assignment",
                                                "src": "6831:34:14"
                                            }
                                        ],
                                        "id": 1786,
                                        "name": "ExpressionStatement",
                                        "src": "6831:34:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "timeIssuedOrSubscribed",
                                                            "referencedDeclaration": 8072,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1754,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 1787,
                                                                "name": "Identifier",
                                                                "src": "6876:1:14"
                                                            }
                                                        ],
                                                        "id": 1789,
                                                        "name": "MemberAccess",
                                                        "src": "6876:24:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1748,
                                                            "type": "uint256",
                                                            "value": "_timeIssued"
                                                        },
                                                        "id": 1790,
                                                        "name": "Identifier",
                                                        "src": "6903:11:14"
                                                    }
                                                ],
                                                "id": 1791,
                                                "name": "Assignment",
                                                "src": "6876:38:14"
                                            }
                                        ],
                                        "id": 1792,
                                        "name": "ExpressionStatement",
                                        "src": "6876:38:14"
                                    }
                                ],
                                "id": 1793,
                                "name": "Block",
                                "src": "6651:271:14"
                            }
                        ],
                        "id": 1794,
                        "name": "FunctionDefinition",
                        "src": "6493:429:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "requestPurchase",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": 8117,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 1856,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1795,
                                                "name": "ElementaryTypeName",
                                                "src": "6955:7:14"
                                            }
                                        ],
                                        "id": 1796,
                                        "name": "VariableDeclaration",
                                        "src": "6955:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 1856,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1797,
                                                "name": "ElementaryTypeName",
                                                "src": "6971:7:14"
                                            }
                                        ],
                                        "id": 1798,
                                        "name": "VariableDeclaration",
                                        "src": "6971:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 1856,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1799,
                                                "name": "ElementaryTypeName",
                                                "src": "6986:7:14"
                                            }
                                        ],
                                        "id": 1800,
                                        "name": "VariableDeclaration",
                                        "src": "6986:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "cashContract",
                                            "scope": 1856,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1801,
                                                "name": "ElementaryTypeName",
                                                "src": "7004:7:14"
                                            }
                                        ],
                                        "id": 1802,
                                        "name": "VariableDeclaration",
                                        "src": "7004:20:14"
                                    }
                                ],
                                "id": 1803,
                                "name": "ParameterList",
                                "src": "6954:71:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 1856,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 1804,
                                                "name": "ElementaryTypeName",
                                                "src": "7043:4:14"
                                            }
                                        ],
                                        "id": 1805,
                                        "name": "VariableDeclaration",
                                        "src": "7043:4:14"
                                    }
                                ],
                                "id": 1806,
                                "name": "ParameterList",
                                "src": "7042:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1807,
                                                        "name": "Identifier",
                                                        "src": "7099:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12542,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 1808,
                                                                "name": "Identifier",
                                                                "src": "7107:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 1809,
                                                                "name": "Literal",
                                                                "src": "7117:5:14"
                                                            }
                                                        ],
                                                        "id": 1810,
                                                        "name": "BinaryOperation",
                                                        "src": "7107:15:14"
                                                    }
                                                ],
                                                "id": 1811,
                                                "name": "FunctionCall",
                                                "src": "7099:24:14"
                                            }
                                        ],
                                        "id": 1812,
                                        "name": "ExpressionStatement",
                                        "src": "7099:24:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_27e375f6d8c4773981e1953f82b3241ce955cf08fa574f626d46c8baea8d0bdb",
                                                                    "typeString": "literal_string \"Purchase amount is zero\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1813,
                                                        "name": "Identifier",
                                                        "src": "7184:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1796,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 1814,
                                                                "name": "Identifier",
                                                                "src": "7192:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 1815,
                                                                "name": "Literal",
                                                                "src": "7202:1:14"
                                                            }
                                                        ],
                                                        "id": 1816,
                                                        "name": "BinaryOperation",
                                                        "src": "7192:11:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "507572636861736520616d6f756e74206973207a65726f",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Purchase amount is zero\"",
                                                            "value": "Purchase amount is zero"
                                                        },
                                                        "id": 1817,
                                                        "name": "Literal",
                                                        "src": "7205:25:14"
                                                    }
                                                ],
                                                "id": 1818,
                                                "name": "FunctionCall",
                                                "src": "7184:47:14"
                                            }
                                        ],
                                        "id": 1819,
                                        "name": "ExpressionStatement",
                                        "src": "7184:47:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1820,
                                                        "name": "Identifier",
                                                        "src": "7332:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes32",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getType",
                                                                            "referencedDeclaration": 8240,
                                                                            "type": "function (address) view external returns (bytes32)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 1821,
                                                                                "name": "Identifier",
                                                                                "src": "7340:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1822,
                                                                        "name": "MemberAccess",
                                                                        "src": "7340:15:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sender",
                                                                            "referencedDeclaration": null,
                                                                            "type": "address payable"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13007,
                                                                                    "type": "msg",
                                                                                    "value": "msg"
                                                                                },
                                                                                "id": 1823,
                                                                                "name": "Identifier",
                                                                                "src": "7356:3:14"
                                                                            }
                                                                        ],
                                                                        "id": 1824,
                                                                        "name": "MemberAccess",
                                                                        "src": "7356:10:14"
                                                                    }
                                                                ],
                                                                "id": 1825,
                                                                "name": "FunctionCall",
                                                                "src": "7340:27:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "566961426f6e64546f6b656e",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"ViaBondToken\"",
                                                                    "value": "ViaBondToken"
                                                                },
                                                                "id": 1826,
                                                                "name": "Literal",
                                                                "src": "7371:14:14"
                                                            }
                                                        ],
                                                        "id": 1827,
                                                        "name": "BinaryOperation",
                                                        "src": "7340:45:14"
                                                    }
                                                ],
                                                "id": 1828,
                                                "name": "FunctionCall",
                                                "src": "7332:54:14"
                                            }
                                        ],
                                        "id": 1829,
                                        "name": "ExpressionStatement",
                                        "src": "7332:54:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_9f2f40c7df69c90ff7b0f7adb3ddeb15b3af2ae229a7bd1432daa8ebe7ba664c",
                                                                    "typeString": "literal_string \"Purchase not with supported token\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 1830,
                                                        "name": "Identifier",
                                                        "src": "7397:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bytes32",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getType",
                                                                                    "referencedDeclaration": 8240,
                                                                                    "type": "function (address) view external returns (bytes32)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1333,
                                                                                            "type": "contract ViaFactory",
                                                                                            "value": "factory"
                                                                                        },
                                                                                        "id": 1831,
                                                                                        "name": "Identifier",
                                                                                        "src": "7405:7:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1832,
                                                                                "name": "MemberAccess",
                                                                                "src": "7405:15:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1802,
                                                                                    "type": "address",
                                                                                    "value": "cashContract"
                                                                                },
                                                                                "id": 1833,
                                                                                "name": "Identifier",
                                                                                "src": "7421:12:14"
                                                                            }
                                                                        ],
                                                                        "id": 1834,
                                                                        "name": "FunctionCall",
                                                                        "src": "7405:29:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "56696143617368",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaCash\"",
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "id": 1835,
                                                                        "name": "Literal",
                                                                        "src": "7436:9:14"
                                                                    }
                                                                ],
                                                                "id": 1836,
                                                                "name": "BinaryOperation",
                                                                "src": "7405:40:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "checkSupportForToken",
                                                                            "referencedDeclaration": 8394,
                                                                            "type": "function (bytes32) view external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 1837,
                                                                                "name": "Identifier",
                                                                                "src": "7449:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1838,
                                                                        "name": "MemberAccess",
                                                                        "src": "7449:28:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1800,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 1839,
                                                                        "name": "Identifier",
                                                                        "src": "7478:8:14"
                                                                    }
                                                                ],
                                                                "id": 1840,
                                                                "name": "FunctionCall",
                                                                "src": "7449:38:14"
                                                            }
                                                        ],
                                                        "id": 1841,
                                                        "name": "BinaryOperation",
                                                        "src": "7405:82:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "5075726368617365206e6f74207769746820737570706f7274656420746f6b656e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Purchase not with supported token\"",
                                                            "value": "Purchase not with supported token"
                                                        },
                                                        "id": 1842,
                                                        "name": "Literal",
                                                        "src": "7489:35:14"
                                                    }
                                                ],
                                                "id": 1843,
                                                "name": "FunctionCall",
                                                "src": "7397:128:14"
                                            }
                                        ],
                                        "id": 1844,
                                        "name": "ExpressionStatement",
                                        "src": "7397:128:14"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 1806
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2080,
                                                                    "type": "function (uint256,address,bytes32,address,address) returns (bool)",
                                                                    "value": "purchase"
                                                                },
                                                                "id": 1845,
                                                                "name": "Identifier",
                                                                "src": "7543:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1796,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 1846,
                                                                "name": "Identifier",
                                                                "src": "7552:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1798,
                                                                    "type": "address",
                                                                    "value": "payer"
                                                                },
                                                                "id": 1847,
                                                                "name": "Identifier",
                                                                "src": "7560:5:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1800,
                                                                    "type": "bytes32",
                                                                    "value": "currency"
                                                                },
                                                                "id": 1848,
                                                                "name": "Identifier",
                                                                "src": "7567:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1802,
                                                                    "type": "address",
                                                                    "value": "cashContract"
                                                                },
                                                                "id": 1849,
                                                                "name": "Identifier",
                                                                "src": "7577:12:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 1850,
                                                                        "name": "Identifier",
                                                                        "src": "7591:3:14"
                                                                    }
                                                                ],
                                                                "id": 1851,
                                                                "name": "MemberAccess",
                                                                "src": "7591:10:14"
                                                            }
                                                        ],
                                                        "id": 1852,
                                                        "name": "FunctionCall",
                                                        "src": "7543:59:14"
                                                    }
                                                ],
                                                "id": 1853,
                                                "name": "TupleExpression",
                                                "src": "7542:61:14"
                                            }
                                        ],
                                        "id": 1854,
                                        "name": "Return",
                                        "src": "7536:67:14"
                                    }
                                ],
                                "id": 1855,
                                "name": "Block",
                                "src": "7048:563:14"
                            }
                        ],
                        "id": 1856,
                        "name": "FunctionDefinition",
                        "src": "6930:681:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "purchase",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 2080,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 1857,
                                                "name": "ElementaryTypeName",
                                                "src": "7728:7:14"
                                            }
                                        ],
                                        "id": 1858,
                                        "name": "VariableDeclaration",
                                        "src": "7728:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 2080,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1859,
                                                "name": "ElementaryTypeName",
                                                "src": "7744:7:14"
                                            }
                                        ],
                                        "id": 1860,
                                        "name": "VariableDeclaration",
                                        "src": "7744:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 2080,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 1861,
                                                "name": "ElementaryTypeName",
                                                "src": "7759:7:14"
                                            }
                                        ],
                                        "id": 1862,
                                        "name": "VariableDeclaration",
                                        "src": "7759:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "cashContract",
                                            "scope": 2080,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1863,
                                                "name": "ElementaryTypeName",
                                                "src": "7777:7:14"
                                            }
                                        ],
                                        "id": 1864,
                                        "name": "VariableDeclaration",
                                        "src": "7777:20:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenContract",
                                            "scope": 2080,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 1865,
                                                "name": "ElementaryTypeName",
                                                "src": "7799:7:14"
                                            }
                                        ],
                                        "id": 1866,
                                        "name": "VariableDeclaration",
                                        "src": "7799:21:14"
                                    }
                                ],
                                "id": 1867,
                                "name": "ParameterList",
                                "src": "7727:94:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 2080,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 1868,
                                                "name": "ElementaryTypeName",
                                                "src": "7838:4:14"
                                            }
                                        ],
                                        "id": 1869,
                                        "name": "VariableDeclaration",
                                        "src": "7838:4:14"
                                    }
                                ],
                                "id": 1870,
                                "name": "ParameterList",
                                "src": "7837:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bytes32",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getType",
                                                                    "referencedDeclaration": 8240,
                                                                    "type": "function (address) view external returns (bytes32)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1333,
                                                                            "type": "contract ViaFactory",
                                                                            "value": "factory"
                                                                        },
                                                                        "id": 1871,
                                                                        "name": "Identifier",
                                                                        "src": "7857:7:14"
                                                                    }
                                                                ],
                                                                "id": 1872,
                                                                "name": "MemberAccess",
                                                                "src": "7857:15:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1864,
                                                                    "type": "address",
                                                                    "value": "cashContract"
                                                                },
                                                                "id": 1873,
                                                                "name": "Identifier",
                                                                "src": "7873:12:14"
                                                            }
                                                        ],
                                                        "id": 1874,
                                                        "name": "FunctionCall",
                                                        "src": "7857:29:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "56696143617368",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"ViaCash\"",
                                                            "value": "ViaCash"
                                                        },
                                                        "id": 1875,
                                                        "name": "Literal",
                                                        "src": "7888:9:14"
                                                    }
                                                ],
                                                "id": 1876,
                                                "name": "BinaryOperation",
                                                "src": "7857:40:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "!",
                                                                    "prefix": true,
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "requestAddToBalance",
                                                                                    "referencedDeclaration": 8180,
                                                                                    "type": "function (uint256,address) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "contract ViaCash",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8212,
                                                                                                    "type": "type(contract ViaCash)",
                                                                                                    "value": "ViaCash"
                                                                                                },
                                                                                                "id": 1877,
                                                                                                "name": "Identifier",
                                                                                                "src": "7991:7:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1864,
                                                                                                    "type": "address",
                                                                                                    "value": "cashContract"
                                                                                                },
                                                                                                "id": 1878,
                                                                                                "name": "Identifier",
                                                                                                "src": "7999:12:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 1879,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "7991:21:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1880,
                                                                                "name": "MemberAccess",
                                                                                "src": "7991:41:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1858,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 1881,
                                                                                "name": "Identifier",
                                                                                "src": "8033:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1860,
                                                                                    "type": "address",
                                                                                    "value": "payer"
                                                                                },
                                                                                "id": 1882,
                                                                                "name": "Identifier",
                                                                                "src": "8041:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 1883,
                                                                        "name": "FunctionCall",
                                                                        "src": "7991:56:14"
                                                                    }
                                                                ],
                                                                "id": 1884,
                                                                "name": "UnaryOperation",
                                                                "src": "7990:57:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "functionReturnParameters": 1870
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "66616c7365",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "bool",
                                                                                    "type": "bool",
                                                                                    "value": "false"
                                                                                },
                                                                                "id": 1885,
                                                                                "name": "Literal",
                                                                                "src": "8074:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 1886,
                                                                        "name": "Return",
                                                                        "src": "8067:12:14"
                                                                    }
                                                                ],
                                                                "id": 1887,
                                                                "name": "Block",
                                                                "src": "8048:47:14"
                                                            }
                                                        ],
                                                        "id": 1888,
                                                        "name": "IfStatement",
                                                        "src": "7987:108:14"
                                                    }
                                                ],
                                                "id": 1889,
                                                "name": "Block",
                                                "src": "7898:208:14"
                                            },
                                            {
                                                "attributes": {
                                                    "falseBody": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "checkSupportForToken",
                                                                            "referencedDeclaration": 8394,
                                                                            "type": "function (bytes32) view external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 1890,
                                                                                "name": "Identifier",
                                                                                "src": "8124:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1891,
                                                                        "name": "MemberAccess",
                                                                        "src": "8124:28:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1862,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 1892,
                                                                        "name": "Identifier",
                                                                        "src": "8153:8:14"
                                                                    }
                                                                ],
                                                                "id": 1893,
                                                                "name": "FunctionCall",
                                                                "src": "8124:38:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 1894,
                                                                "name": "Literal",
                                                                "src": "8164:4:14"
                                                            }
                                                        ],
                                                        "id": 1895,
                                                        "name": "BinaryOperation",
                                                        "src": "8124:44:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferFrom",
                                                                                    "referencedDeclaration": 392,
                                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 409,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 1896,
                                                                                                "name": "Identifier",
                                                                                                "src": "8264:6:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1864,
                                                                                                    "type": "address",
                                                                                                    "value": "cashContract"
                                                                                                },
                                                                                                "id": 1897,
                                                                                                "name": "Identifier",
                                                                                                "src": "8271:12:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 1898,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "8264:20:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1899,
                                                                                "name": "MemberAccess",
                                                                                "src": "8264:33:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1860,
                                                                                    "type": "address",
                                                                                    "value": "payer"
                                                                                },
                                                                                "id": 1900,
                                                                                "name": "Identifier",
                                                                                "src": "8298:5:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_Bond_$3597",
                                                                                                    "typeString": "contract Bond"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 1901,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "8305:7:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 13075,
                                                                                            "type": "contract Bond",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 1902,
                                                                                        "name": "Identifier",
                                                                                        "src": "8313:4:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1903,
                                                                                "name": "FunctionCall",
                                                                                "src": "8305:13:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1858,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 1904,
                                                                                "name": "Identifier",
                                                                                "src": "8320:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 1905,
                                                                        "name": "FunctionCall",
                                                                        "src": "8264:63:14"
                                                                    }
                                                                ],
                                                                "id": 1906,
                                                                "name": "ExpressionStatement",
                                                                "src": "8264:63:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        1908
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "scalingFactor",
                                                                            "scope": 1922,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "uint256",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "uint256",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "id": 1907,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "8342:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1908,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "8342:21:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3580,
                                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                                    "value": "_computeScalingFactor"
                                                                                },
                                                                                "id": 1909,
                                                                                "name": "Identifier",
                                                                                "src": "8366:21:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "contract IERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 409,
                                                                                            "type": "type(contract IERC20)",
                                                                                            "value": "IERC20"
                                                                                        },
                                                                                        "id": 1910,
                                                                                        "name": "Identifier",
                                                                                        "src": "8388:6:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1864,
                                                                                            "type": "address",
                                                                                            "value": "cashContract"
                                                                                        },
                                                                                        "id": 1911,
                                                                                        "name": "Identifier",
                                                                                        "src": "8395:12:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1912,
                                                                                "name": "FunctionCall",
                                                                                "src": "8388:20:14"
                                                                            }
                                                                        ],
                                                                        "id": 1913,
                                                                        "name": "FunctionCall",
                                                                        "src": "8366:43:14"
                                                                    }
                                                                ],
                                                                "id": 1914,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "8342:67:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1858,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 1915,
                                                                                "name": "Identifier",
                                                                                "src": "8424:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3596,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                            "value": "_upscale"
                                                                                        },
                                                                                        "id": 1916,
                                                                                        "name": "Identifier",
                                                                                        "src": "8433:8:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1858,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 1917,
                                                                                        "name": "Identifier",
                                                                                        "src": "8442:6:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1908,
                                                                                            "type": "uint256",
                                                                                            "value": "scalingFactor"
                                                                                        },
                                                                                        "id": 1918,
                                                                                        "name": "Identifier",
                                                                                        "src": "8450:13:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1919,
                                                                                "name": "FunctionCall",
                                                                                "src": "8433:31:14"
                                                                            }
                                                                        ],
                                                                        "id": 1920,
                                                                        "name": "Assignment",
                                                                        "src": "8424:40:14"
                                                                    }
                                                                ],
                                                                "id": 1921,
                                                                "name": "ExpressionStatement",
                                                                "src": "8424:40:14"
                                                            }
                                                        ],
                                                        "id": 1922,
                                                        "name": "Block",
                                                        "src": "8169:307:14"
                                                    }
                                                ],
                                                "id": 1923,
                                                "name": "IfStatement",
                                                "src": "8121:355:14"
                                            }
                                        ],
                                        "id": 1924,
                                        "name": "IfStatement",
                                        "src": "7854:622:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1926
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "er",
                                                    "scope": 2079,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 1925,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8486:7:14"
                                                    }
                                                ],
                                                "id": 1926,
                                                "name": "VariableDeclaration",
                                                "src": "8486:10:14"
                                            }
                                        ],
                                        "id": 1927,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8486:10:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1929
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "ir",
                                                    "scope": 2079,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 1928,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8507:7:14"
                                                    }
                                                ],
                                                "id": 1929,
                                                "name": "VariableDeclaration",
                                                "src": "8507:10:14"
                                            }
                                        ],
                                        "id": 1930,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8507:10:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1932
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "price",
                                                    "scope": 2079,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 1931,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8528:7:14"
                                                    }
                                                ],
                                                "id": 1932,
                                                "name": "VariableDeclaration",
                                                "src": "8528:13:14"
                                            }
                                        ],
                                        "id": 1933,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8528:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1935
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "vt",
                                                    "scope": 2079,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "contract ViaToken",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "contractScope": null,
                                                            "name": "ViaToken",
                                                            "referencedDeclaration": 8499,
                                                            "type": "contract ViaToken"
                                                        },
                                                        "id": 1934,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "8649:8:14"
                                                    }
                                                ],
                                                "id": 1935,
                                                "name": "VariableDeclaration",
                                                "src": "8649:11:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "contract ViaToken",
                                                    "type_conversion": true
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8499,
                                                            "type": "type(contract ViaToken)",
                                                            "value": "ViaToken"
                                                        },
                                                        "id": 1936,
                                                        "name": "Identifier",
                                                        "src": "8663:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1866,
                                                            "type": "address",
                                                            "value": "tokenContract"
                                                        },
                                                        "id": 1937,
                                                        "name": "Identifier",
                                                        "src": "8672:13:14"
                                                    }
                                                ],
                                                "id": 1938,
                                                "name": "FunctionCall",
                                                "src": "8663:23:14"
                                            }
                                        ],
                                        "id": 1939,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8649:37:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1941
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "issuer",
                                                    "scope": 2079,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 1940,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8697:7:14"
                                                    }
                                                ],
                                                "id": 1941,
                                                "name": "VariableDeclaration",
                                                "src": "8697:14:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getIssuer",
                                                            "referencedDeclaration": 8434,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1935,
                                                                    "type": "contract ViaToken",
                                                                    "value": "vt"
                                                                },
                                                                "id": 1942,
                                                                "name": "Identifier",
                                                                "src": "8714:2:14"
                                                            }
                                                        ],
                                                        "id": 1943,
                                                        "name": "MemberAccess",
                                                        "src": "8714:12:14"
                                                    }
                                                ],
                                                "id": 1944,
                                                "name": "FunctionCall",
                                                "src": "8714:14:14"
                                            }
                                        ],
                                        "id": 1945,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8697:31:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                1947
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "tenure",
                                                    "scope": 2079,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 1946,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8739:7:14"
                                                    }
                                                ],
                                                "id": 1947,
                                                "name": "VariableDeclaration",
                                                "src": "8739:14:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getBondTerm",
                                                                            "referencedDeclaration": 8297,
                                                                            "type": "function (address) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 1948,
                                                                                "name": "Identifier",
                                                                                "src": "8756:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 1949,
                                                                        "name": "MemberAccess",
                                                                        "src": "8756:19:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1866,
                                                                            "type": "address",
                                                                            "value": "tokenContract"
                                                                        },
                                                                        "id": 1950,
                                                                        "name": "Identifier",
                                                                        "src": "8776:13:14"
                                                                    }
                                                                ],
                                                                "id": 1951,
                                                                "name": "FunctionCall",
                                                                "src": "8756:34:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 1952,
                                                                "name": "Literal",
                                                                "src": "8792:1:14"
                                                            }
                                                        ],
                                                        "id": 1953,
                                                        "name": "BinaryOperation",
                                                        "src": "8756:37:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "3331353336303030",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 31536000",
                                                            "value": "31536000"
                                                        },
                                                        "id": 1954,
                                                        "name": "Literal",
                                                        "src": "8796:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getBondTerm",
                                                                    "referencedDeclaration": 8297,
                                                                    "type": "function (address) view external returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1333,
                                                                            "type": "contract ViaFactory",
                                                                            "value": "factory"
                                                                        },
                                                                        "id": 1955,
                                                                        "name": "Identifier",
                                                                        "src": "8807:7:14"
                                                                    }
                                                                ],
                                                                "id": 1956,
                                                                "name": "MemberAccess",
                                                                "src": "8807:19:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1866,
                                                                    "type": "address",
                                                                    "value": "tokenContract"
                                                                },
                                                                "id": 1957,
                                                                "name": "Identifier",
                                                                "src": "8827:13:14"
                                                            }
                                                        ],
                                                        "id": 1958,
                                                        "name": "FunctionCall",
                                                        "src": "8807:34:14"
                                                    }
                                                ],
                                                "id": 1959,
                                                "name": "Conditional",
                                                "src": "8756:85:14"
                                            }
                                        ],
                                        "id": 1960,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8739:102:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1947,
                                                            "type": "uint256",
                                                            "value": "tenure"
                                                        },
                                                        "id": 1961,
                                                        "name": "Identifier",
                                                        "src": "8852:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sub",
                                                                                    "referencedDeclaration": 10300,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10483,
                                                                                            "type": "type(library Math)",
                                                                                            "value": "Math"
                                                                                        },
                                                                                        "id": 1962,
                                                                                        "name": "Identifier",
                                                                                        "src": "8861:4:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1963,
                                                                                "name": "MemberAccess",
                                                                                "src": "8861:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13009,
                                                                                    "type": "uint256",
                                                                                    "value": "now"
                                                                                },
                                                                                "id": 1964,
                                                                                "name": "Identifier",
                                                                                "src": "8870:3:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "timeIssuedOrSubscribed",
                                                                                    "referencedDeclaration": 8072,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1349,
                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                            "value": "issues"
                                                                                                        },
                                                                                                        "id": 1965,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8875:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1941,
                                                                                                            "type": "address",
                                                                                                            "value": "issuer"
                                                                                                        },
                                                                                                        "id": 1966,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8882:6:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 1967,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8875:14:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1866,
                                                                                                    "type": "address",
                                                                                                    "value": "tokenContract"
                                                                                                },
                                                                                                "id": 1968,
                                                                                                "name": "Identifier",
                                                                                                "src": "8890:13:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 1969,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "8875:29:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1970,
                                                                                "name": "MemberAccess",
                                                                                "src": "8875:52:14"
                                                                            }
                                                                        ],
                                                                        "id": 1971,
                                                                        "name": "FunctionCall",
                                                                        "src": "8861:67:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 1972,
                                                                        "name": "Literal",
                                                                        "src": "8930:1:14"
                                                                    }
                                                                ],
                                                                "id": 1973,
                                                                "name": "BinaryOperation",
                                                                "src": "8861:70:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1947,
                                                                    "type": "uint256",
                                                                    "value": "tenure"
                                                                },
                                                                "id": 1974,
                                                                "name": "Identifier",
                                                                "src": "8934:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sub",
                                                                            "referencedDeclaration": 10300,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10483,
                                                                                    "type": "type(library Math)",
                                                                                    "value": "Math"
                                                                                },
                                                                                "id": 1975,
                                                                                "name": "Identifier",
                                                                                "src": "8965:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 1976,
                                                                        "name": "MemberAccess",
                                                                        "src": "8965:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1947,
                                                                            "type": "uint256",
                                                                            "value": "tenure"
                                                                        },
                                                                        "id": 1977,
                                                                        "name": "Identifier",
                                                                        "src": "8974:6:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sub",
                                                                                    "referencedDeclaration": 10300,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10483,
                                                                                            "type": "type(library Math)",
                                                                                            "value": "Math"
                                                                                        },
                                                                                        "id": 1978,
                                                                                        "name": "Identifier",
                                                                                        "src": "8982:4:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1979,
                                                                                "name": "MemberAccess",
                                                                                "src": "8982:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13009,
                                                                                    "type": "uint256",
                                                                                    "value": "now"
                                                                                },
                                                                                "id": 1980,
                                                                                "name": "Identifier",
                                                                                "src": "8991:3:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "timeIssuedOrSubscribed",
                                                                                    "referencedDeclaration": 8072,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1349,
                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                            "value": "issues"
                                                                                                        },
                                                                                                        "id": 1981,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8996:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1941,
                                                                                                            "type": "address",
                                                                                                            "value": "issuer"
                                                                                                        },
                                                                                                        "id": 1982,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9003:6:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 1983,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8996:14:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1866,
                                                                                                    "type": "address",
                                                                                                    "value": "tokenContract"
                                                                                                },
                                                                                                "id": 1984,
                                                                                                "name": "Identifier",
                                                                                                "src": "9011:13:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 1985,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "8996:29:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1986,
                                                                                "name": "MemberAccess",
                                                                                "src": "8996:52:14"
                                                                            }
                                                                        ],
                                                                        "id": 1987,
                                                                        "name": "FunctionCall",
                                                                        "src": "8982:67:14"
                                                                    }
                                                                ],
                                                                "id": 1988,
                                                                "name": "FunctionCall",
                                                                "src": "8965:85:14"
                                                            }
                                                        ],
                                                        "id": 1989,
                                                        "name": "Conditional",
                                                        "src": "8861:189:14"
                                                    }
                                                ],
                                                "id": 1990,
                                                "name": "Assignment",
                                                "src": "8852:198:14"
                                            }
                                        ],
                                        "id": 1991,
                                        "name": "ExpressionStatement",
                                        "src": "8852:198:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "!=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1862,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 1992,
                                                        "name": "Identifier",
                                                        "src": "9064:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1339,
                                                            "type": "bytes32",
                                                            "value": "bondCurrency"
                                                        },
                                                        "id": 1993,
                                                        "name": "Identifier",
                                                        "src": "9074:12:14"
                                                    }
                                                ],
                                                "id": 1994,
                                                "name": "BinaryOperation",
                                                "src": "9064:22:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1926,
                                                                            "type": "uint256",
                                                                            "value": "er"
                                                                        },
                                                                        "id": 1995,
                                                                        "name": "Identifier",
                                                                        "src": "9344:2:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_8d59d30b2e0636060cbadd07e789f8a1580adc30d4dc8bc4ff048650ee7844f3",
                                                                                            "typeString": "literal_string \"er\""
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "request",
                                                                                    "referencedDeclaration": 8415,
                                                                                    "type": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1337,
                                                                                            "type": "contract ViaOracle",
                                                                                            "value": "oracle"
                                                                                        },
                                                                                        "id": 1996,
                                                                                        "name": "Identifier",
                                                                                        "src": "9349:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 1997,
                                                                                "name": "MemberAccess",
                                                                                "src": "9349:14:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1862,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 1998,
                                                                                "name": "Identifier",
                                                                                "src": "9364:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1339,
                                                                                    "type": "bytes32",
                                                                                    "value": "bondCurrency"
                                                                                },
                                                                                "id": 1999,
                                                                                "name": "Identifier",
                                                                                "src": "9374:12:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "6572",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"er\"",
                                                                                    "value": "er"
                                                                                },
                                                                                "id": 2000,
                                                                                "name": "Literal",
                                                                                "src": "9388:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 2001,
                                                                        "name": "FunctionCall",
                                                                        "src": "9349:44:14"
                                                                    }
                                                                ],
                                                                "id": 2002,
                                                                "name": "Assignment",
                                                                "src": "9344:49:14"
                                                            }
                                                        ],
                                                        "id": 2003,
                                                        "name": "ExpressionStatement",
                                                        "src": "9344:49:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1929,
                                                                            "type": "uint256",
                                                                            "value": "ir"
                                                                        },
                                                                        "id": 2004,
                                                                        "name": "Identifier",
                                                                        "src": "9408:2:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_8b922417f63369ce20019910344de1dd01bb41726847eb4fae04ae0780fa8122",
                                                                                            "typeString": "literal_string \"ir\""
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "request",
                                                                                    "referencedDeclaration": 8415,
                                                                                    "type": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1337,
                                                                                            "type": "contract ViaOracle",
                                                                                            "value": "oracle"
                                                                                        },
                                                                                        "id": 2005,
                                                                                        "name": "Identifier",
                                                                                        "src": "9413:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2006,
                                                                                "name": "MemberAccess",
                                                                                "src": "9413:14:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1862,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 2007,
                                                                                "name": "Identifier",
                                                                                "src": "9428:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1339,
                                                                                    "type": "bytes32",
                                                                                    "value": "bondCurrency"
                                                                                },
                                                                                "id": 2008,
                                                                                "name": "Identifier",
                                                                                "src": "9438:12:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "6972",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"ir\"",
                                                                                    "value": "ir"
                                                                                },
                                                                                "id": 2009,
                                                                                "name": "Literal",
                                                                                "src": "9452:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 2010,
                                                                        "name": "FunctionCall",
                                                                        "src": "9413:44:14"
                                                                    }
                                                                ],
                                                                "id": 2011,
                                                                "name": "Assignment",
                                                                "src": "9408:49:14"
                                                            }
                                                        ],
                                                        "id": 2012,
                                                        "name": "ExpressionStatement",
                                                        "src": "9408:49:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1932,
                                                                            "type": "uint256",
                                                                            "value": "price"
                                                                        },
                                                                        "id": 2013,
                                                                        "name": "Identifier",
                                                                        "src": "9472:5:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "mulDown",
                                                                                    "referencedDeclaration": 8604,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8909,
                                                                                            "type": "type(library FixedPoint)",
                                                                                            "value": "FixedPoint"
                                                                                        },
                                                                                        "id": 2014,
                                                                                        "name": "Identifier",
                                                                                        "src": "9480:10:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2015,
                                                                                "name": "MemberAccess",
                                                                                "src": "9480:18:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "mulDown",
                                                                                            "referencedDeclaration": 8604,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8909,
                                                                                                    "type": "type(library FixedPoint)",
                                                                                                    "value": "FixedPoint"
                                                                                                },
                                                                                                "id": 2016,
                                                                                                "name": "Identifier",
                                                                                                "src": "9499:10:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2017,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9499:18:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1858,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 2018,
                                                                                        "name": "Identifier",
                                                                                        "src": "9518:6:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1926,
                                                                                            "type": "uint256",
                                                                                            "value": "er"
                                                                                        },
                                                                                        "id": 2019,
                                                                                        "name": "Identifier",
                                                                                        "src": "9526:2:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2020,
                                                                                "name": "FunctionCall",
                                                                                "src": "9499:30:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "pow",
                                                                                            "referencedDeclaration": 9140,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10189,
                                                                                                    "type": "type(library LogExpMath)",
                                                                                                    "value": "LogExpMath"
                                                                                                },
                                                                                                "id": 2021,
                                                                                                "name": "Identifier",
                                                                                                "src": "9531:10:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2022,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9531:14:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                                                            "typeString": "int_const 1000000000000000000"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "add",
                                                                                                    "referencedDeclaration": 8546,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 2023,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9546:10:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2024,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9546:14:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "31653138",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 1000000000000000000",
                                                                                                    "value": "1e18"
                                                                                                },
                                                                                                "id": 2025,
                                                                                                "name": "Literal",
                                                                                                "src": "9561:4:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1929,
                                                                                                    "type": "uint256",
                                                                                                    "value": "ir"
                                                                                                },
                                                                                                "id": 2026,
                                                                                                "name": "Identifier",
                                                                                                "src": "9567:2:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2027,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "9546:24:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_rational_31536000_by_1",
                                                                                                            "typeString": "int_const 31536000"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "divDown",
                                                                                                    "referencedDeclaration": 8695,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 2028,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9572:10:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2029,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9572:18:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1947,
                                                                                                    "type": "uint256",
                                                                                                    "value": "tenure"
                                                                                                },
                                                                                                "id": 2030,
                                                                                                "name": "Identifier",
                                                                                                "src": "9591:6:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "3331353336303030",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 31536000",
                                                                                                    "value": "31536000"
                                                                                                },
                                                                                                "id": 2031,
                                                                                                "name": "Literal",
                                                                                                "src": "9599:8:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2032,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "9572:36:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2033,
                                                                                "name": "FunctionCall",
                                                                                "src": "9531:78:14"
                                                                            }
                                                                        ],
                                                                        "id": 2034,
                                                                        "name": "FunctionCall",
                                                                        "src": "9480:130:14"
                                                                    }
                                                                ],
                                                                "id": 2035,
                                                                "name": "Assignment",
                                                                "src": "9472:138:14"
                                                            }
                                                        ],
                                                        "id": 2036,
                                                        "name": "ExpressionStatement",
                                                        "src": "9472:138:14"
                                                    }
                                                ],
                                                "id": 2037,
                                                "name": "Block",
                                                "src": "9087:535:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1929,
                                                                            "type": "uint256",
                                                                            "value": "ir"
                                                                        },
                                                                        "id": 2038,
                                                                        "name": "Identifier",
                                                                        "src": "9892:2:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_8b922417f63369ce20019910344de1dd01bb41726847eb4fae04ae0780fa8122",
                                                                                            "typeString": "literal_string \"ir\""
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "request",
                                                                                    "referencedDeclaration": 8415,
                                                                                    "type": "function (bytes32,bytes32,bytes32) external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1337,
                                                                                            "type": "contract ViaOracle",
                                                                                            "value": "oracle"
                                                                                        },
                                                                                        "id": 2039,
                                                                                        "name": "Identifier",
                                                                                        "src": "9897:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2040,
                                                                                "name": "MemberAccess",
                                                                                "src": "9897:14:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1862,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 2041,
                                                                                "name": "Identifier",
                                                                                "src": "9912:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1862,
                                                                                    "type": "bytes32",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 2042,
                                                                                "name": "Identifier",
                                                                                "src": "9922:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "6972",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"ir\"",
                                                                                    "value": "ir"
                                                                                },
                                                                                "id": 2043,
                                                                                "name": "Literal",
                                                                                "src": "9932:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 2044,
                                                                        "name": "FunctionCall",
                                                                        "src": "9897:40:14"
                                                                    }
                                                                ],
                                                                "id": 2045,
                                                                "name": "Assignment",
                                                                "src": "9892:45:14"
                                                            }
                                                        ],
                                                        "id": 2046,
                                                        "name": "ExpressionStatement",
                                                        "src": "9892:45:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1932,
                                                                            "type": "uint256",
                                                                            "value": "price"
                                                                        },
                                                                        "id": 2047,
                                                                        "name": "Identifier",
                                                                        "src": "9952:5:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "mulDown",
                                                                                    "referencedDeclaration": 8604,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8909,
                                                                                            "type": "type(library FixedPoint)",
                                                                                            "value": "FixedPoint"
                                                                                        },
                                                                                        "id": 2048,
                                                                                        "name": "Identifier",
                                                                                        "src": "9960:10:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2049,
                                                                                "name": "MemberAccess",
                                                                                "src": "9960:18:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1858,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 2050,
                                                                                "name": "Identifier",
                                                                                "src": "9979:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "pow",
                                                                                            "referencedDeclaration": 9140,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10189,
                                                                                                    "type": "type(library LogExpMath)",
                                                                                                    "value": "LogExpMath"
                                                                                                },
                                                                                                "id": 2051,
                                                                                                "name": "Identifier",
                                                                                                "src": "9987:10:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2052,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9987:14:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                                                            "typeString": "int_const 1000000000000000000"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "add",
                                                                                                    "referencedDeclaration": 8546,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 2053,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "10002:10:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2054,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "10002:14:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "31653138",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 1000000000000000000",
                                                                                                    "value": "1e18"
                                                                                                },
                                                                                                "id": 2055,
                                                                                                "name": "Literal",
                                                                                                "src": "10017:4:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1929,
                                                                                                    "type": "uint256",
                                                                                                    "value": "ir"
                                                                                                },
                                                                                                "id": 2056,
                                                                                                "name": "Identifier",
                                                                                                "src": "10023:2:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2057,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "10002:24:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_rational_31536000_by_1",
                                                                                                            "typeString": "int_const 31536000"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "divDown",
                                                                                                    "referencedDeclaration": 8695,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 2058,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "10028:10:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2059,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "10028:18:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1947,
                                                                                                    "type": "uint256",
                                                                                                    "value": "tenure"
                                                                                                },
                                                                                                "id": 2060,
                                                                                                "name": "Identifier",
                                                                                                "src": "10047:6:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "3331353336303030",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 31536000",
                                                                                                    "value": "31536000"
                                                                                                },
                                                                                                "id": 2061,
                                                                                                "name": "Literal",
                                                                                                "src": "10055:8:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2062,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "10028:36:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2063,
                                                                                "name": "FunctionCall",
                                                                                "src": "9987:78:14"
                                                                            }
                                                                        ],
                                                                        "id": 2064,
                                                                        "name": "FunctionCall",
                                                                        "src": "9960:106:14"
                                                                    }
                                                                ],
                                                                "id": 2065,
                                                                "name": "Assignment",
                                                                "src": "9952:114:14"
                                                            }
                                                        ],
                                                        "id": 2066,
                                                        "name": "ExpressionStatement",
                                                        "src": "9952:114:14"
                                                    }
                                                ],
                                                "id": 2067,
                                                "name": "Block",
                                                "src": "9636:442:14"
                                            }
                                        ],
                                        "id": 2068,
                                        "name": "IfStatement",
                                        "src": "9061:1017:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2191,
                                                            "type": "function (address,uint256,uint256,bytes32,address,address,address)",
                                                            "value": "finallyPurchase"
                                                        },
                                                        "id": 2069,
                                                        "name": "Identifier",
                                                        "src": "10124:15:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1860,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 2070,
                                                        "name": "Identifier",
                                                        "src": "10140:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1932,
                                                            "type": "uint256",
                                                            "value": "price"
                                                        },
                                                        "id": 2071,
                                                        "name": "Identifier",
                                                        "src": "10147:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1858,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 2072,
                                                        "name": "Identifier",
                                                        "src": "10154:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1862,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 2073,
                                                        "name": "Identifier",
                                                        "src": "10162:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1864,
                                                            "type": "address",
                                                            "value": "cashContract"
                                                        },
                                                        "id": 2074,
                                                        "name": "Identifier",
                                                        "src": "10172:12:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1866,
                                                            "type": "address",
                                                            "value": "tokenContract"
                                                        },
                                                        "id": 2075,
                                                        "name": "Identifier",
                                                        "src": "10186:13:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 1941,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 2076,
                                                        "name": "Identifier",
                                                        "src": "10201:6:14"
                                                    }
                                                ],
                                                "id": 2077,
                                                "name": "FunctionCall",
                                                "src": "10124:84:14"
                                            }
                                        ],
                                        "id": 2078,
                                        "name": "ExpressionStatement",
                                        "src": "10124:84:14"
                                    }
                                ],
                                "id": 2079,
                                "name": "Block",
                                "src": "7843:2373:14"
                            }
                        ],
                        "id": 2080,
                        "name": "FunctionDefinition",
                        "src": "7710:2506:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "finallyPurchase",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 2191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2081,
                                                "name": "ElementaryTypeName",
                                                "src": "10253:7:14"
                                            }
                                        ],
                                        "id": 2082,
                                        "name": "VariableDeclaration",
                                        "src": "10253:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "purchaseValue",
                                            "scope": 2191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 2083,
                                                "name": "ElementaryTypeName",
                                                "src": "10268:7:14"
                                            }
                                        ],
                                        "id": 2084,
                                        "name": "VariableDeclaration",
                                        "src": "10268:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "paidInAmount",
                                            "scope": 2191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 2085,
                                                "name": "ElementaryTypeName",
                                                "src": "10291:7:14"
                                            }
                                        ],
                                        "id": 2086,
                                        "name": "VariableDeclaration",
                                        "src": "10291:20:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "paidInCashToken",
                                            "scope": 2191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 2087,
                                                "name": "ElementaryTypeName",
                                                "src": "10313:7:14"
                                            }
                                        ],
                                        "id": 2088,
                                        "name": "VariableDeclaration",
                                        "src": "10313:23:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "cashContract",
                                            "scope": 2191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2089,
                                                "name": "ElementaryTypeName",
                                                "src": "10338:7:14"
                                            }
                                        ],
                                        "id": 2090,
                                        "name": "VariableDeclaration",
                                        "src": "10338:20:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenContract",
                                            "scope": 2191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2091,
                                                "name": "ElementaryTypeName",
                                                "src": "10360:7:14"
                                            }
                                        ],
                                        "id": 2092,
                                        "name": "VariableDeclaration",
                                        "src": "10360:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issuer",
                                            "scope": 2191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2093,
                                                "name": "ElementaryTypeName",
                                                "src": "10383:7:14"
                                            }
                                        ],
                                        "id": 2094,
                                        "name": "VariableDeclaration",
                                        "src": "10383:14:14"
                                    }
                                ],
                                "id": 2095,
                                "name": "ParameterList",
                                "src": "10252:146:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 2096,
                                "name": "ParameterList",
                                "src": "10407:0:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                2098
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "purchaseTime",
                                                    "scope": 2190,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 2097,
                                                        "name": "ElementaryTypeName",
                                                        "src": "10418:7:14"
                                                    }
                                                ],
                                                "id": 2098,
                                                "name": "VariableDeclaration",
                                                "src": "10418:20:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13009,
                                                    "type": "uint256",
                                                    "value": "now"
                                                },
                                                "id": 2099,
                                                "name": "Identifier",
                                                "src": "10441:3:14"
                                            }
                                        ],
                                        "id": 2100,
                                        "name": "VariableDeclarationStatement",
                                        "src": "10418:26:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 2101,
                                                        "name": "Identifier",
                                                        "src": "10455:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!",
                                                            "prefix": true,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1422,
                                                                            "type": "mapping(bytes32 => bool)",
                                                                            "value": "lock"
                                                                        },
                                                                        "id": 2102,
                                                                        "name": "Identifier",
                                                                        "src": "10464:4:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "7075726368617365",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"purchase\"",
                                                                            "value": "purchase"
                                                                        },
                                                                        "id": 2103,
                                                                        "name": "Literal",
                                                                        "src": "10469:10:14"
                                                                    }
                                                                ],
                                                                "id": 2104,
                                                                "name": "IndexAccess",
                                                                "src": "10464:16:14"
                                                            }
                                                        ],
                                                        "id": 2105,
                                                        "name": "UnaryOperation",
                                                        "src": "10463:17:14"
                                                    }
                                                ],
                                                "id": 2106,
                                                "name": "FunctionCall",
                                                "src": "10455:26:14"
                                            }
                                        ],
                                        "id": 2107,
                                        "name": "ExpressionStatement",
                                        "src": "10455:26:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1422,
                                                                    "type": "mapping(bytes32 => bool)",
                                                                    "value": "lock"
                                                                },
                                                                "id": 2108,
                                                                "name": "Identifier",
                                                                "src": "10492:4:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "7075726368617365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"purchase\"",
                                                                    "value": "purchase"
                                                                },
                                                                "id": 2109,
                                                                "name": "Literal",
                                                                "src": "10497:10:14"
                                                            }
                                                        ],
                                                        "id": 2110,
                                                        "name": "IndexAccess",
                                                        "src": "10492:16:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 2111,
                                                        "name": "Literal",
                                                        "src": "10511:4:14"
                                                    }
                                                ],
                                                "id": 2112,
                                                "name": "Assignment",
                                                "src": "10492:23:14"
                                            }
                                        ],
                                        "id": 2113,
                                        "name": "ExpressionStatement",
                                        "src": "10492:23:14"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferToken",
                                                            "referencedDeclaration": 8445,
                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract ViaToken",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8499,
                                                                            "type": "type(contract ViaToken)",
                                                                            "value": "ViaToken"
                                                                        },
                                                                        "id": 2114,
                                                                        "name": "Identifier",
                                                                        "src": "10707:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2092,
                                                                            "type": "address",
                                                                            "value": "tokenContract"
                                                                        },
                                                                        "id": 2115,
                                                                        "name": "Identifier",
                                                                        "src": "10716:13:14"
                                                                    }
                                                                ],
                                                                "id": 2116,
                                                                "name": "FunctionCall",
                                                                "src": "10707:23:14"
                                                            }
                                                        ],
                                                        "id": 2117,
                                                        "name": "MemberAccess",
                                                        "src": "10707:37:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2094,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 2118,
                                                        "name": "Identifier",
                                                        "src": "10745:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2082,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 2119,
                                                        "name": "Identifier",
                                                        "src": "10753:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2084,
                                                            "type": "uint256",
                                                            "value": "purchaseValue"
                                                        },
                                                        "id": 2120,
                                                        "name": "Identifier",
                                                        "src": "10760:13:14"
                                                    }
                                                ],
                                                "id": 2121,
                                                "name": "FunctionCall",
                                                "src": "10707:67:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3359,
                                                                            "type": "function (address,uint256,address)",
                                                                            "value": "send"
                                                                        },
                                                                        "id": 2122,
                                                                        "name": "Identifier",
                                                                        "src": "10998:4:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2090,
                                                                            "type": "address",
                                                                            "value": "cashContract"
                                                                        },
                                                                        "id": 2123,
                                                                        "name": "Identifier",
                                                                        "src": "11003:12:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2086,
                                                                            "type": "uint256",
                                                                            "value": "paidInAmount"
                                                                        },
                                                                        "id": 2124,
                                                                        "name": "Identifier",
                                                                        "src": "11017:12:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2094,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 2125,
                                                                        "name": "Identifier",
                                                                        "src": "11031:6:14"
                                                                    }
                                                                ],
                                                                "id": 2126,
                                                                "name": "FunctionCall",
                                                                "src": "10998:40:14"
                                                            }
                                                        ],
                                                        "id": 2127,
                                                        "name": "ExpressionStatement",
                                                        "src": "10998:40:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                2129
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "b",
                                                                    "scope": 2182,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "storage",
                                                                    "type": "struct ViaBond.bond",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "contractScope": null,
                                                                            "name": "bond",
                                                                            "referencedDeclaration": 8078,
                                                                            "type": "struct ViaBond.bond"
                                                                        },
                                                                        "id": 2128,
                                                                        "name": "UserDefinedTypeName",
                                                                        "src": "11118:4:14"
                                                                    }
                                                                ],
                                                                "id": 2129,
                                                                "name": "VariableDeclaration",
                                                                "src": "11118:14:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 2130,
                                                                                "name": "Identifier",
                                                                                "src": "11135:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2094,
                                                                                    "type": "address",
                                                                                    "value": "issuer"
                                                                                },
                                                                                "id": 2131,
                                                                                "name": "Identifier",
                                                                                "src": "11142:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 2132,
                                                                        "name": "IndexAccess",
                                                                        "src": "11135:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2092,
                                                                            "type": "address",
                                                                            "value": "tokenContract"
                                                                        },
                                                                        "id": 2133,
                                                                        "name": "Identifier",
                                                                        "src": "11150:13:14"
                                                                    }
                                                                ],
                                                                "id": 2134,
                                                                "name": "IndexAccess",
                                                                "src": "11135:29:14"
                                                            }
                                                        ],
                                                        "id": 2135,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "11118:46:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (address) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "counterParties",
                                                                                    "referencedDeclaration": 8077,
                                                                                    "type": "address[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2129,
                                                                                            "type": "struct ViaBond.bond storage pointer",
                                                                                            "value": "b"
                                                                                        },
                                                                                        "id": 2136,
                                                                                        "name": "Identifier",
                                                                                        "src": "11179:1:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2139,
                                                                                "name": "MemberAccess",
                                                                                "src": "11179:16:14"
                                                                            }
                                                                        ],
                                                                        "id": 2140,
                                                                        "name": "MemberAccess",
                                                                        "src": "11179:21:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2082,
                                                                            "type": "address",
                                                                            "value": "payer"
                                                                        },
                                                                        "id": 2141,
                                                                        "name": "Identifier",
                                                                        "src": "11201:5:14"
                                                                    }
                                                                ],
                                                                "id": 2142,
                                                                "name": "FunctionCall",
                                                                "src": "11179:28:14"
                                                            }
                                                        ],
                                                        "id": 2143,
                                                        "name": "ExpressionStatement",
                                                        "src": "11179:28:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "purchasedIssueAmount",
                                                                            "referencedDeclaration": 8074,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1349,
                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                    "value": "issues"
                                                                                                },
                                                                                                "id": 2144,
                                                                                                "name": "Identifier",
                                                                                                "src": "11301:6:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2094,
                                                                                                    "type": "address",
                                                                                                    "value": "issuer"
                                                                                                },
                                                                                                "id": 2145,
                                                                                                "name": "Identifier",
                                                                                                "src": "11308:6:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2147,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "11301:14:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2092,
                                                                                            "type": "address",
                                                                                            "value": "tokenContract"
                                                                                        },
                                                                                        "id": 2146,
                                                                                        "name": "Identifier",
                                                                                        "src": "11316:13:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2148,
                                                                                "name": "IndexAccess",
                                                                                "src": "11301:29:14"
                                                                            }
                                                                        ],
                                                                        "id": 2149,
                                                                        "name": "MemberAccess",
                                                                        "src": "11301:50:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "add",
                                                                                    "referencedDeclaration": 10236,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10483,
                                                                                            "type": "type(library Math)",
                                                                                            "value": "Math"
                                                                                        },
                                                                                        "id": 2150,
                                                                                        "name": "Identifier",
                                                                                        "src": "11354:4:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2151,
                                                                                "name": "MemberAccess",
                                                                                "src": "11354:8:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "purchasedIssueAmount",
                                                                                    "referencedDeclaration": 8074,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1349,
                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                            "value": "issues"
                                                                                                        },
                                                                                                        "id": 2152,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "11363:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2094,
                                                                                                            "type": "address",
                                                                                                            "value": "issuer"
                                                                                                        },
                                                                                                        "id": 2153,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "11370:6:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2154,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "11363:14:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2092,
                                                                                                    "type": "address",
                                                                                                    "value": "tokenContract"
                                                                                                },
                                                                                                "id": 2155,
                                                                                                "name": "Identifier",
                                                                                                "src": "11378:13:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2156,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "11363:29:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2157,
                                                                                "name": "MemberAccess",
                                                                                "src": "11363:50:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2084,
                                                                                    "type": "uint256",
                                                                                    "value": "purchaseValue"
                                                                                },
                                                                                "id": 2158,
                                                                                "name": "Identifier",
                                                                                "src": "11415:13:14"
                                                                            }
                                                                        ],
                                                                        "id": 2159,
                                                                        "name": "FunctionCall",
                                                                        "src": "11354:75:14"
                                                                    }
                                                                ],
                                                                "id": 2160,
                                                                "name": "Assignment",
                                                                "src": "11301:128:14"
                                                            }
                                                        ],
                                                        "id": 2161,
                                                        "name": "ExpressionStatement",
                                                        "src": "11301:128:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2270,
                                                                            "type": "function (address,address,uint256,uint256,bytes32,uint256,address)",
                                                                            "value": "storePurchasedBond"
                                                                        },
                                                                        "id": 2162,
                                                                        "name": "Identifier",
                                                                        "src": "11491:18:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2082,
                                                                            "type": "address",
                                                                            "value": "payer"
                                                                        },
                                                                        "id": 2163,
                                                                        "name": "Identifier",
                                                                        "src": "11510:5:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2094,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 2164,
                                                                        "name": "Identifier",
                                                                        "src": "11517:6:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2084,
                                                                            "type": "uint256",
                                                                            "value": "purchaseValue"
                                                                        },
                                                                        "id": 2165,
                                                                        "name": "Identifier",
                                                                        "src": "11525:13:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2086,
                                                                            "type": "uint256",
                                                                            "value": "paidInAmount"
                                                                        },
                                                                        "id": 2166,
                                                                        "name": "Identifier",
                                                                        "src": "11540:12:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2088,
                                                                            "type": "bytes32",
                                                                            "value": "paidInCashToken"
                                                                        },
                                                                        "id": 2167,
                                                                        "name": "Identifier",
                                                                        "src": "11554:15:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2098,
                                                                            "type": "uint256",
                                                                            "value": "purchaseTime"
                                                                        },
                                                                        "id": 2168,
                                                                        "name": "Identifier",
                                                                        "src": "11571:12:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2092,
                                                                            "type": "address",
                                                                            "value": "tokenContract"
                                                                        },
                                                                        "id": 2169,
                                                                        "name": "Identifier",
                                                                        "src": "11585:13:14"
                                                                    }
                                                                ],
                                                                "id": 2170,
                                                                "name": "FunctionCall",
                                                                "src": "11491:108:14"
                                                            }
                                                        ],
                                                        "id": 2171,
                                                        "name": "ExpressionStatement",
                                                        "src": "11491:108:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1404,
                                                                            "type": "function (address,address,bytes32,uint256,bytes32,uint256,uint256)",
                                                                            "value": "BondPurchased"
                                                                        },
                                                                        "id": 2172,
                                                                        "name": "Identifier",
                                                                        "src": "11655:13:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2082,
                                                                            "type": "address",
                                                                            "value": "payer"
                                                                        },
                                                                        "id": 2173,
                                                                        "name": "Identifier",
                                                                        "src": "11669:5:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2092,
                                                                            "type": "address",
                                                                            "value": "tokenContract"
                                                                        },
                                                                        "id": 2174,
                                                                        "name": "Identifier",
                                                                        "src": "11676:13:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1341,
                                                                            "type": "bytes32",
                                                                            "value": "bondName"
                                                                        },
                                                                        "id": 2175,
                                                                        "name": "Identifier",
                                                                        "src": "11691:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2084,
                                                                            "type": "uint256",
                                                                            "value": "purchaseValue"
                                                                        },
                                                                        "id": 2176,
                                                                        "name": "Identifier",
                                                                        "src": "11701:13:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2088,
                                                                            "type": "bytes32",
                                                                            "value": "paidInCashToken"
                                                                        },
                                                                        "id": 2177,
                                                                        "name": "Identifier",
                                                                        "src": "11716:15:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2086,
                                                                            "type": "uint256",
                                                                            "value": "paidInAmount"
                                                                        },
                                                                        "id": 2178,
                                                                        "name": "Identifier",
                                                                        "src": "11733:12:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2098,
                                                                            "type": "uint256",
                                                                            "value": "purchaseTime"
                                                                        },
                                                                        "id": 2179,
                                                                        "name": "Identifier",
                                                                        "src": "11747:12:14"
                                                                    }
                                                                ],
                                                                "id": 2180,
                                                                "name": "FunctionCall",
                                                                "src": "11655:105:14"
                                                            }
                                                        ],
                                                        "id": 2181,
                                                        "name": "EmitStatement",
                                                        "src": "11650:110:14"
                                                    }
                                                ],
                                                "id": 2182,
                                                "name": "Block",
                                                "src": "10775:997:14"
                                            }
                                        ],
                                        "id": 2183,
                                        "name": "IfStatement",
                                        "src": "10704:1068:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1422,
                                                                    "type": "mapping(bytes32 => bool)",
                                                                    "value": "lock"
                                                                },
                                                                "id": 2184,
                                                                "name": "Identifier",
                                                                "src": "11782:4:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "7075726368617365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"purchase\"",
                                                                    "value": "purchase"
                                                                },
                                                                "id": 2185,
                                                                "name": "Literal",
                                                                "src": "11787:10:14"
                                                            }
                                                        ],
                                                        "id": 2186,
                                                        "name": "IndexAccess",
                                                        "src": "11782:16:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 2187,
                                                        "name": "Literal",
                                                        "src": "11801:5:14"
                                                    }
                                                ],
                                                "id": 2188,
                                                "name": "Assignment",
                                                "src": "11782:24:14"
                                            }
                                        ],
                                        "id": 2189,
                                        "name": "ExpressionStatement",
                                        "src": "11782:24:14"
                                    }
                                ],
                                "id": 2190,
                                "name": "Block",
                                "src": "10407:1415:14"
                            }
                        ],
                        "id": 2191,
                        "name": "FunctionDefinition",
                        "src": "10228:1594:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "storePurchasedBond",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_payer",
                                            "scope": 2270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2192,
                                                "name": "ElementaryTypeName",
                                                "src": "11895:7:14"
                                            }
                                        ],
                                        "id": 2193,
                                        "name": "VariableDeclaration",
                                        "src": "11895:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_party",
                                            "scope": 2270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2194,
                                                "name": "ElementaryTypeName",
                                                "src": "11911:7:14"
                                            }
                                        ],
                                        "id": 2195,
                                        "name": "VariableDeclaration",
                                        "src": "11911:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_purchasedIssueAmount",
                                            "scope": 2270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 2196,
                                                "name": "ElementaryTypeName",
                                                "src": "11927:7:14"
                                            }
                                        ],
                                        "id": 2197,
                                        "name": "VariableDeclaration",
                                        "src": "11927:29:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_paidInAmount",
                                            "scope": 2270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 2198,
                                                "name": "ElementaryTypeName",
                                                "src": "11958:7:14"
                                            }
                                        ],
                                        "id": 2199,
                                        "name": "VariableDeclaration",
                                        "src": "11958:21:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_paidInCashToken",
                                            "scope": 2270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 2200,
                                                "name": "ElementaryTypeName",
                                                "src": "11981:7:14"
                                            }
                                        ],
                                        "id": 2201,
                                        "name": "VariableDeclaration",
                                        "src": "11981:24:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_timeSubscribed",
                                            "scope": 2270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 2202,
                                                "name": "ElementaryTypeName",
                                                "src": "12007:7:14"
                                            }
                                        ],
                                        "id": 2203,
                                        "name": "VariableDeclaration",
                                        "src": "12007:23:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_issuedBond",
                                            "scope": 2270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2204,
                                                "name": "ElementaryTypeName",
                                                "src": "12032:7:14"
                                            }
                                        ],
                                        "id": 2205,
                                        "name": "VariableDeclaration",
                                        "src": "12032:19:14"
                                    }
                                ],
                                "id": 2206,
                                "name": "ParameterList",
                                "src": "11894:158:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 2207,
                                "name": "ParameterList",
                                "src": "12061:0:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                2209
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "b",
                                                    "scope": 2269,
                                                    "stateVariable": false,
                                                    "storageLocation": "storage",
                                                    "type": "struct ViaBond.bond",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "contractScope": null,
                                                            "name": "bond",
                                                            "referencedDeclaration": 8078,
                                                            "type": "struct ViaBond.bond"
                                                        },
                                                        "id": 2208,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "12072:4:14"
                                                    }
                                                ],
                                                "id": 2209,
                                                "name": "VariableDeclaration",
                                                "src": "12072:14:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct ViaBond.bond storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1355,
                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                    "value": "purchases"
                                                                },
                                                                "id": 2210,
                                                                "name": "Identifier",
                                                                "src": "12089:9:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2193,
                                                                    "type": "address",
                                                                    "value": "_payer"
                                                                },
                                                                "id": 2211,
                                                                "name": "Identifier",
                                                                "src": "12099:6:14"
                                                            }
                                                        ],
                                                        "id": 2212,
                                                        "name": "IndexAccess",
                                                        "src": "12089:17:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2205,
                                                            "type": "address",
                                                            "value": "_issuedBond"
                                                        },
                                                        "id": 2213,
                                                        "name": "Identifier",
                                                        "src": "12107:11:14"
                                                    }
                                                ],
                                                "id": 2214,
                                                "name": "IndexAccess",
                                                "src": "12089:30:14"
                                            }
                                        ],
                                        "id": 2215,
                                        "name": "VariableDeclarationStatement",
                                        "src": "12072:47:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "referencedDeclaration": null,
                                                            "type": "function (address) returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "counterParties",
                                                                    "referencedDeclaration": 8077,
                                                                    "type": "address[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2209,
                                                                            "type": "struct ViaBond.bond storage pointer",
                                                                            "value": "b"
                                                                        },
                                                                        "id": 2216,
                                                                        "name": "Identifier",
                                                                        "src": "12130:1:14"
                                                                    }
                                                                ],
                                                                "id": 2219,
                                                                "name": "MemberAccess",
                                                                "src": "12130:16:14"
                                                            }
                                                        ],
                                                        "id": 2220,
                                                        "name": "MemberAccess",
                                                        "src": "12130:21:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2195,
                                                            "type": "address",
                                                            "value": "_party"
                                                        },
                                                        "id": 2221,
                                                        "name": "Identifier",
                                                        "src": "12152:6:14"
                                                    }
                                                ],
                                                "id": 2222,
                                                "name": "FunctionCall",
                                                "src": "12130:29:14"
                                            }
                                        ],
                                        "id": 2223,
                                        "name": "ExpressionStatement",
                                        "src": "12130:29:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "purchasedIssueAmount",
                                                            "referencedDeclaration": 8074,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2209,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 2224,
                                                                "name": "Identifier",
                                                                "src": "12170:1:14"
                                                            }
                                                        ],
                                                        "id": 2226,
                                                        "name": "MemberAccess",
                                                        "src": "12170:22:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 10236,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 2227,
                                                                        "name": "Identifier",
                                                                        "src": "12195:4:14"
                                                                    }
                                                                ],
                                                                "id": 2228,
                                                                "name": "MemberAccess",
                                                                "src": "12195:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "purchasedIssueAmount",
                                                                    "referencedDeclaration": 8074,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2209,
                                                                            "type": "struct ViaBond.bond storage pointer",
                                                                            "value": "b"
                                                                        },
                                                                        "id": 2229,
                                                                        "name": "Identifier",
                                                                        "src": "12204:1:14"
                                                                    }
                                                                ],
                                                                "id": 2230,
                                                                "name": "MemberAccess",
                                                                "src": "12204:22:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2197,
                                                                    "type": "uint256",
                                                                    "value": "_purchasedIssueAmount"
                                                                },
                                                                "id": 2231,
                                                                "name": "Identifier",
                                                                "src": "12228:21:14"
                                                            }
                                                        ],
                                                        "id": 2232,
                                                        "name": "FunctionCall",
                                                        "src": "12195:55:14"
                                                    }
                                                ],
                                                "id": 2233,
                                                "name": "Assignment",
                                                "src": "12170:80:14"
                                            }
                                        ],
                                        "id": 2234,
                                        "name": "ExpressionStatement",
                                        "src": "12170:80:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "paidInAmount",
                                                            "referencedDeclaration": 8068,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2209,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 2235,
                                                                "name": "Identifier",
                                                                "src": "12261:1:14"
                                                            }
                                                        ],
                                                        "id": 2237,
                                                        "name": "MemberAccess",
                                                        "src": "12261:14:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 10236,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 2238,
                                                                        "name": "Identifier",
                                                                        "src": "12278:4:14"
                                                                    }
                                                                ],
                                                                "id": 2239,
                                                                "name": "MemberAccess",
                                                                "src": "12278:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "paidInAmount",
                                                                    "referencedDeclaration": 8068,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2209,
                                                                            "type": "struct ViaBond.bond storage pointer",
                                                                            "value": "b"
                                                                        },
                                                                        "id": 2240,
                                                                        "name": "Identifier",
                                                                        "src": "12287:1:14"
                                                                    }
                                                                ],
                                                                "id": 2241,
                                                                "name": "MemberAccess",
                                                                "src": "12287:14:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2199,
                                                                    "type": "uint256",
                                                                    "value": "_paidInAmount"
                                                                },
                                                                "id": 2242,
                                                                "name": "Identifier",
                                                                "src": "12303:13:14"
                                                            }
                                                        ],
                                                        "id": 2243,
                                                        "name": "FunctionCall",
                                                        "src": "12278:39:14"
                                                    }
                                                ],
                                                "id": 2244,
                                                "name": "Assignment",
                                                "src": "12261:56:14"
                                            }
                                        ],
                                        "id": 2245,
                                        "name": "ExpressionStatement",
                                        "src": "12261:56:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "paidInCurrency",
                                                            "referencedDeclaration": 8070,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2209,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 2246,
                                                                "name": "Identifier",
                                                                "src": "12328:1:14"
                                                            }
                                                        ],
                                                        "id": 2248,
                                                        "name": "MemberAccess",
                                                        "src": "12328:16:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2201,
                                                            "type": "bytes32",
                                                            "value": "_paidInCashToken"
                                                        },
                                                        "id": 2249,
                                                        "name": "Identifier",
                                                        "src": "12347:16:14"
                                                    }
                                                ],
                                                "id": 2250,
                                                "name": "Assignment",
                                                "src": "12328:35:14"
                                            }
                                        ],
                                        "id": 2251,
                                        "name": "ExpressionStatement",
                                        "src": "12328:35:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "timeIssuedOrSubscribed",
                                                            "referencedDeclaration": 8072,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2209,
                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                    "value": "b"
                                                                },
                                                                "id": 2252,
                                                                "name": "Identifier",
                                                                "src": "12374:1:14"
                                                            }
                                                        ],
                                                        "id": 2254,
                                                        "name": "MemberAccess",
                                                        "src": "12374:24:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "divDown",
                                                                    "referencedDeclaration": 10448,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10483,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 2255,
                                                                        "name": "Identifier",
                                                                        "src": "12401:4:14"
                                                                    }
                                                                ],
                                                                "id": 2256,
                                                                "name": "MemberAccess",
                                                                "src": "12401:12:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "add",
                                                                            "referencedDeclaration": 10236,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10483,
                                                                                    "type": "type(library Math)",
                                                                                    "value": "Math"
                                                                                },
                                                                                "id": 2257,
                                                                                "name": "Identifier",
                                                                                "src": "12414:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 2258,
                                                                        "name": "MemberAccess",
                                                                        "src": "12414:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "timeIssuedOrSubscribed",
                                                                            "referencedDeclaration": 8072,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2209,
                                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                                    "value": "b"
                                                                                },
                                                                                "id": 2259,
                                                                                "name": "Identifier",
                                                                                "src": "12423:1:14"
                                                                            }
                                                                        ],
                                                                        "id": 2260,
                                                                        "name": "MemberAccess",
                                                                        "src": "12423:24:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2203,
                                                                            "type": "uint256",
                                                                            "value": "_timeSubscribed"
                                                                        },
                                                                        "id": 2261,
                                                                        "name": "Identifier",
                                                                        "src": "12449:15:14"
                                                                    }
                                                                ],
                                                                "id": 2262,
                                                                "name": "FunctionCall",
                                                                "src": "12414:51:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "counterParties",
                                                                            "referencedDeclaration": 8077,
                                                                            "type": "address[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2209,
                                                                                    "type": "struct ViaBond.bond storage pointer",
                                                                                    "value": "b"
                                                                                },
                                                                                "id": 2263,
                                                                                "name": "Identifier",
                                                                                "src": "12467:1:14"
                                                                            }
                                                                        ],
                                                                        "id": 2264,
                                                                        "name": "MemberAccess",
                                                                        "src": "12467:16:14"
                                                                    }
                                                                ],
                                                                "id": 2265,
                                                                "name": "MemberAccess",
                                                                "src": "12467:23:14"
                                                            }
                                                        ],
                                                        "id": 2266,
                                                        "name": "FunctionCall",
                                                        "src": "12401:90:14"
                                                    }
                                                ],
                                                "id": 2267,
                                                "name": "Assignment",
                                                "src": "12374:117:14"
                                            }
                                        ],
                                        "id": 2268,
                                        "name": "ExpressionStatement",
                                        "src": "12374:117:14"
                                    }
                                ],
                                "id": 2269,
                                "name": "Block",
                                "src": "12061:438:14"
                            }
                        ],
                        "id": 2270,
                        "name": "FunctionDefinition",
                        "src": "11867:632:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "requestRedemption",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": 8130,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 2321,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 2271,
                                                "name": "ElementaryTypeName",
                                                "src": "12534:7:14"
                                            }
                                        ],
                                        "id": 2272,
                                        "name": "VariableDeclaration",
                                        "src": "12534:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 2321,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2273,
                                                "name": "ElementaryTypeName",
                                                "src": "12550:7:14"
                                            }
                                        ],
                                        "id": 2274,
                                        "name": "VariableDeclaration",
                                        "src": "12550:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 2321,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 2275,
                                                "name": "ElementaryTypeName",
                                                "src": "12565:7:14"
                                            }
                                        ],
                                        "id": 2276,
                                        "name": "VariableDeclaration",
                                        "src": "12565:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenContract",
                                            "scope": 2321,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2277,
                                                "name": "ElementaryTypeName",
                                                "src": "12583:7:14"
                                            }
                                        ],
                                        "id": 2278,
                                        "name": "VariableDeclaration",
                                        "src": "12583:21:14"
                                    }
                                ],
                                "id": 2279,
                                "name": "ParameterList",
                                "src": "12533:72:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 2321,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 2280,
                                                "name": "ElementaryTypeName",
                                                "src": "12623:4:14"
                                            }
                                        ],
                                        "id": 2281,
                                        "name": "VariableDeclaration",
                                        "src": "12623:4:14"
                                    }
                                ],
                                "id": 2282,
                                "name": "ParameterList",
                                "src": "12622:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 2283,
                                                        "name": "Identifier",
                                                        "src": "12679:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12542,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 2284,
                                                                "name": "Identifier",
                                                                "src": "12687:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 2285,
                                                                "name": "Literal",
                                                                "src": "12697:5:14"
                                                            }
                                                        ],
                                                        "id": 2286,
                                                        "name": "BinaryOperation",
                                                        "src": "12687:15:14"
                                                    }
                                                ],
                                                "id": 2287,
                                                "name": "FunctionCall",
                                                "src": "12679:24:14"
                                            }
                                        ],
                                        "id": 2288,
                                        "name": "ExpressionStatement",
                                        "src": "12679:24:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3c7258d955df0c2950494da254538959da95fa93d59d3cf47b2c345865db433b",
                                                                    "typeString": "literal_string \"AMLA check fail\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 2289,
                                                        "name": "Identifier",
                                                        "src": "12742:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3501,
                                                                            "type": "function (address) view returns (bool)",
                                                                            "value": "amlCheck"
                                                                        },
                                                                        "id": 2290,
                                                                        "name": "Identifier",
                                                                        "src": "12750:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2274,
                                                                            "type": "address",
                                                                            "value": "payer"
                                                                        },
                                                                        "id": 2291,
                                                                        "name": "Identifier",
                                                                        "src": "12759:5:14"
                                                                    }
                                                                ],
                                                                "id": 2292,
                                                                "name": "FunctionCall",
                                                                "src": "12750:15:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 2293,
                                                                "name": "Literal",
                                                                "src": "12767:4:14"
                                                            }
                                                        ],
                                                        "id": 2294,
                                                        "name": "BinaryOperation",
                                                        "src": "12750:21:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "414d4c4120636865636b206661696c",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"AMLA check fail\"",
                                                            "value": "AMLA check fail"
                                                        },
                                                        "id": 2295,
                                                        "name": "Literal",
                                                        "src": "12773:17:14"
                                                    }
                                                ],
                                                "id": 2296,
                                                "name": "FunctionCall",
                                                "src": "12742:49:14"
                                            }
                                        ],
                                        "id": 2297,
                                        "name": "ExpressionStatement",
                                        "src": "12742:49:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 2298,
                                                        "name": "Identifier",
                                                        "src": "12802:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes32",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getType",
                                                                            "referencedDeclaration": 8240,
                                                                            "type": "function (address) view external returns (bytes32)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 2299,
                                                                                "name": "Identifier",
                                                                                "src": "12810:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 2300,
                                                                        "name": "MemberAccess",
                                                                        "src": "12810:15:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sender",
                                                                            "referencedDeclaration": null,
                                                                            "type": "address payable"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13007,
                                                                                    "type": "msg",
                                                                                    "value": "msg"
                                                                                },
                                                                                "id": 2301,
                                                                                "name": "Identifier",
                                                                                "src": "12826:3:14"
                                                                            }
                                                                        ],
                                                                        "id": 2302,
                                                                        "name": "MemberAccess",
                                                                        "src": "12826:10:14"
                                                                    }
                                                                ],
                                                                "id": 2303,
                                                                "name": "FunctionCall",
                                                                "src": "12810:27:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "566961426f6e64546f6b656e",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"ViaBondToken\"",
                                                                    "value": "ViaBondToken"
                                                                },
                                                                "id": 2304,
                                                                "name": "Literal",
                                                                "src": "12841:14:14"
                                                            }
                                                        ],
                                                        "id": 2305,
                                                        "name": "BinaryOperation",
                                                        "src": "12810:45:14"
                                                    }
                                                ],
                                                "id": 2306,
                                                "name": "FunctionCall",
                                                "src": "12802:54:14"
                                            }
                                        ],
                                        "id": 2307,
                                        "name": "ExpressionStatement",
                                        "src": "12802:54:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_5d42e0c8c46379bda38784c21642f9eee896ca9b90e23453b96545edc3458bec",
                                                                    "typeString": "literal_string \"CashTransfer\""
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3094,
                                                            "type": "function (uint256,address,bytes32,bytes32,address) returns (bool)",
                                                            "value": "redeem"
                                                        },
                                                        "id": 2308,
                                                        "name": "Identifier",
                                                        "src": "13072:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2272,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 2309,
                                                        "name": "Identifier",
                                                        "src": "13079:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2274,
                                                            "type": "address",
                                                            "value": "payer"
                                                        },
                                                        "id": 2310,
                                                        "name": "Identifier",
                                                        "src": "13087:5:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2276,
                                                            "type": "bytes32",
                                                            "value": "currency"
                                                        },
                                                        "id": 2311,
                                                        "name": "Identifier",
                                                        "src": "13094:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436173685472616e73666572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"CashTransfer\"",
                                                            "value": "CashTransfer"
                                                        },
                                                        "id": 2312,
                                                        "name": "Literal",
                                                        "src": "13104:14:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2278,
                                                            "type": "address",
                                                            "value": "tokenContract"
                                                        },
                                                        "id": 2313,
                                                        "name": "Identifier",
                                                        "src": "13120:13:14"
                                                    }
                                                ],
                                                "id": 2314,
                                                "name": "FunctionCall",
                                                "src": "13072:62:14"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 2282
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 2315,
                                                        "name": "Literal",
                                                        "src": "13156:4:14"
                                                    }
                                                ],
                                                "id": 2316,
                                                "name": "Return",
                                                "src": "13149:11:14"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 2282
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 2317,
                                                        "name": "Literal",
                                                        "src": "13196:5:14"
                                                    }
                                                ],
                                                "id": 2318,
                                                "name": "Return",
                                                "src": "13189:12:14"
                                            }
                                        ],
                                        "id": 2319,
                                        "name": "IfStatement",
                                        "src": "13069:132:14"
                                    }
                                ],
                                "id": 2320,
                                "name": "Block",
                                "src": "12628:581:14"
                            }
                        ],
                        "id": 2321,
                        "name": "FunctionDefinition",
                        "src": "12507:702:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "redeem",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 3094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 2322,
                                                "name": "ElementaryTypeName",
                                                "src": "13327:7:14"
                                            }
                                        ],
                                        "id": 2323,
                                        "name": "VariableDeclaration",
                                        "src": "13327:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payer",
                                            "scope": 3094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2324,
                                                "name": "ElementaryTypeName",
                                                "src": "13343:7:14"
                                            }
                                        ],
                                        "id": 2325,
                                        "name": "VariableDeclaration",
                                        "src": "13343:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenName",
                                            "scope": 3094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 2326,
                                                "name": "ElementaryTypeName",
                                                "src": "13358:7:14"
                                            }
                                        ],
                                        "id": 2327,
                                        "name": "VariableDeclaration",
                                        "src": "13358:17:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "action",
                                            "scope": 3094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 2328,
                                                "name": "ElementaryTypeName",
                                                "src": "13377:7:14"
                                            }
                                        ],
                                        "id": 2329,
                                        "name": "VariableDeclaration",
                                        "src": "13377:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenContract",
                                            "scope": 3094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 2330,
                                                "name": "ElementaryTypeName",
                                                "src": "13393:7:14"
                                            }
                                        ],
                                        "id": 2331,
                                        "name": "VariableDeclaration",
                                        "src": "13393:21:14"
                                    }
                                ],
                                "id": 2332,
                                "name": "ParameterList",
                                "src": "13326:89:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3094,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 2333,
                                                "name": "ElementaryTypeName",
                                                "src": "13432:4:14"
                                            }
                                        ],
                                        "id": 2334,
                                        "name": "VariableDeclaration",
                                        "src": "13432:4:14"
                                    }
                                ],
                                "id": 2335,
                                "name": "ParameterList",
                                "src": "13431:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2329,
                                                            "type": "bytes32",
                                                            "value": "action"
                                                        },
                                                        "id": 2336,
                                                        "name": "Identifier",
                                                        "src": "13565:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "546f6b656e5472616e73666572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"TokenTransfer\"",
                                                            "value": "TokenTransfer"
                                                        },
                                                        "id": 2337,
                                                        "name": "Literal",
                                                        "src": "13573:15:14"
                                                    }
                                                ],
                                                "id": 2338,
                                                "name": "BinaryOperation",
                                                "src": "13565:23:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                2340
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "status",
                                                                    "scope": 2727,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "bool",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "bool",
                                                                            "type": "bool"
                                                                        },
                                                                        "id": 2339,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "13604:4:14"
                                                                    }
                                                                ],
                                                                "id": 2340,
                                                                "name": "VariableDeclaration",
                                                                "src": "13604:11:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 2341,
                                                                "name": "Literal",
                                                                "src": "13618:5:14"
                                                            }
                                                        ],
                                                        "id": 2342,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "13604:19:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "purchasedIssueAmount",
                                                                            "referencedDeclaration": 8074,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1355,
                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                    "value": "purchases"
                                                                                                },
                                                                                                "id": 2343,
                                                                                                "name": "Identifier",
                                                                                                "src": "13713:9:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2325,
                                                                                                    "type": "address",
                                                                                                    "value": "payer"
                                                                                                },
                                                                                                "id": 2344,
                                                                                                "name": "Identifier",
                                                                                                "src": "13723:5:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2345,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "13713:16:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2331,
                                                                                            "type": "address",
                                                                                            "value": "tokenContract"
                                                                                        },
                                                                                        "id": 2346,
                                                                                        "name": "Identifier",
                                                                                        "src": "13730:13:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2347,
                                                                                "name": "IndexAccess",
                                                                                "src": "13713:31:14"
                                                                            }
                                                                        ],
                                                                        "id": 2348,
                                                                        "name": "MemberAccess",
                                                                        "src": "13713:52:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2323,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 2349,
                                                                        "name": "Identifier",
                                                                        "src": "13767:6:14"
                                                                    }
                                                                ],
                                                                "id": 2350,
                                                                "name": "BinaryOperation",
                                                                "src": "13713:60:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "falseBody": null
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": ">",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "timeIssuedOrSubscribed",
                                                                                            "referencedDeclaration": 8072,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                    "value": "purchases"
                                                                                                                },
                                                                                                                "id": 2351,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "13848:9:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                    "type": "address",
                                                                                                                    "value": "payer"
                                                                                                                },
                                                                                                                "id": 2352,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "13858:5:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2353,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "13848:16:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2331,
                                                                                                            "type": "address",
                                                                                                            "value": "tokenContract"
                                                                                                        },
                                                                                                        "id": 2354,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13865:13:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2355,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13848:31:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2356,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13848:54:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 2357,
                                                                                        "name": "Literal",
                                                                                        "src": "13905:1:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2358,
                                                                                "name": "BinaryOperation",
                                                                                "src": "13848:58:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "assignments": [
                                                                                                2360
                                                                                            ]
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "constant": false,
                                                                                                    "name": "issuer",
                                                                                                    "scope": 2596,
                                                                                                    "stateVariable": false,
                                                                                                    "storageLocation": "default",
                                                                                                    "type": "address",
                                                                                                    "value": null,
                                                                                                    "visibility": "internal"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "name": "address",
                                                                                                            "stateMutability": "nonpayable",
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "id": 2359,
                                                                                                        "name": "ElementaryTypeName",
                                                                                                        "src": "13930:7:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2360,
                                                                                                "name": "VariableDeclaration",
                                                                                                "src": "13930:14:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "counterParties",
                                                                                                            "referencedDeclaration": 8077,
                                                                                                            "type": "address[] storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                    "value": "purchases"
                                                                                                                                },
                                                                                                                                "id": 2361,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13947:9:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "payer"
                                                                                                                                },
                                                                                                                                "id": 2362,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "13957:5:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2363,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "13947:16:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                            "type": "address",
                                                                                                                            "value": "tokenContract"
                                                                                                                        },
                                                                                                                        "id": 2364,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "13964:13:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2365,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "13947:31:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2366,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "13947:46:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 2367,
                                                                                                        "name": "Literal",
                                                                                                        "src": "13994:1:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2368,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13947:49:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2369,
                                                                                        "name": "VariableDeclarationStatement",
                                                                                        "src": "13930:66:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "assignments": [
                                                                                                2371
                                                                                            ]
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "constant": false,
                                                                                                    "name": "redemptionAmount",
                                                                                                    "scope": 2596,
                                                                                                    "stateVariable": false,
                                                                                                    "storageLocation": "default",
                                                                                                    "type": "uint256",
                                                                                                    "value": null,
                                                                                                    "visibility": "internal"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "name": "uint256",
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "id": 2370,
                                                                                                        "name": "ElementaryTypeName",
                                                                                                        "src": "14077:7:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2371,
                                                                                                "name": "VariableDeclaration",
                                                                                                "src": "14077:24:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "mulDown",
                                                                                                            "referencedDeclaration": 8604,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                    "value": "FixedPoint"
                                                                                                                },
                                                                                                                "id": 2372,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14104:10:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2373,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "14104:18:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "divDown",
                                                                                                                    "referencedDeclaration": 8695,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8909,
                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                            "value": "FixedPoint"
                                                                                                                        },
                                                                                                                        "id": 2374,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14123:10:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2375,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "14123:18:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2323,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "amount"
                                                                                                                },
                                                                                                                "id": 2376,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14142:6:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "parValue",
                                                                                                                    "referencedDeclaration": 8066,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "issues"
                                                                                                                                        },
                                                                                                                                        "id": 2377,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "14150:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "address"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "counterParties",
                                                                                                                                                    "referencedDeclaration": 8077,
                                                                                                                                                    "type": "address[] storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 1355,
                                                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                            "value": "purchases"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 2378,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14157:9:14"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "payer"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 2379,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14167:5:14"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 2380,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "14157:16:14"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "tokenContract"
                                                                                                                                                                },
                                                                                                                                                                "id": 2381,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14174:13:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2382,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "14157:31:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2383,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "14157:46:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "hexvalue": "30",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "subdenomination": null,
                                                                                                                                                    "token": "number",
                                                                                                                                                    "type": "int_const 0",
                                                                                                                                                    "value": "0"
                                                                                                                                                },
                                                                                                                                                "id": 2384,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "14204:1:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2385,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14157:49:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2386,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14150:57:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "tokenContract"
                                                                                                                                },
                                                                                                                                "id": 2387,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "14208:13:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2388,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "14150:72:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2389,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "14150:81:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2390,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "14123:109:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "paidInAmount",
                                                                                                            "referencedDeclaration": 8068,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                    "value": "issues"
                                                                                                                                },
                                                                                                                                "id": 2391,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "14284:6:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "address"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "counterParties",
                                                                                                                                            "referencedDeclaration": 8077,
                                                                                                                                            "type": "address[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                    "value": "purchases"
                                                                                                                                                                },
                                                                                                                                                                "id": 2392,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14291:9:14"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "payer"
                                                                                                                                                                },
                                                                                                                                                                "id": 2393,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "14301:5:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2394,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "14291:16:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "tokenContract"
                                                                                                                                                        },
                                                                                                                                                        "id": 2395,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14308:13:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2396,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "14291:31:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2397,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "14291:46:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "hexvalue": "30",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "subdenomination": null,
                                                                                                                                            "token": "number",
                                                                                                                                            "type": "int_const 0",
                                                                                                                                            "value": "0"
                                                                                                                                        },
                                                                                                                                        "id": 2398,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "14338:1:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2399,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14291:49:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2400,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "14284:57:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                            "type": "address",
                                                                                                                            "value": "tokenContract"
                                                                                                                        },
                                                                                                                        "id": 2401,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14342:13:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2402,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "14284:72:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2403,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "14284:85:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2404,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "14104:266:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2405,
                                                                                        "name": "VariableDeclarationStatement",
                                                                                        "src": "14077:293:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2371,
                                                                                                            "type": "uint256",
                                                                                                            "value": "redemptionAmount"
                                                                                                        },
                                                                                                        "id": 2406,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14460:16:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "mulDown",
                                                                                                                    "referencedDeclaration": 8604,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8909,
                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                            "value": "FixedPoint"
                                                                                                                        },
                                                                                                                        "id": 2407,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14479:10:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2408,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "14479:18:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2371,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "redemptionAmount"
                                                                                                                },
                                                                                                                "id": 2409,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14498:16:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "uint256",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "divDown",
                                                                                                                            "referencedDeclaration": 8695,
                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                                    "value": "FixedPoint"
                                                                                                                                },
                                                                                                                                "id": 2410,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "14516:10:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2411,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "14516:18:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "uint256",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "sub",
                                                                                                                                    "referencedDeclaration": 10300,
                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 10483,
                                                                                                                                            "type": "type(library Math)",
                                                                                                                                            "value": "Math"
                                                                                                                                        },
                                                                                                                                        "id": 2412,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "14577:4:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2413,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "14577:8:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 13009,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "now"
                                                                                                                                },
                                                                                                                                "id": 2414,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "14586:3:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "timeIssuedOrSubscribed",
                                                                                                                                    "referencedDeclaration": 8072,
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 1355,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                            "value": "purchases"
                                                                                                                                                        },
                                                                                                                                                        "id": 2415,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14591:9:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "payer"
                                                                                                                                                        },
                                                                                                                                                        "id": 2416,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14601:5:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2417,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "14591:16:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "tokenContract"
                                                                                                                                                },
                                                                                                                                                "id": 2418,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14608:13:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2419,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14591:31:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2420,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "14591:54:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2421,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "14577:69:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "uint256",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "sub",
                                                                                                                                    "referencedDeclaration": 10300,
                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 10483,
                                                                                                                                            "type": "type(library Math)",
                                                                                                                                            "value": "Math"
                                                                                                                                        },
                                                                                                                                        "id": 2422,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "14689:4:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2423,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "14689:8:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 13009,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "now"
                                                                                                                                },
                                                                                                                                "id": 2424,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "14698:3:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "timeIssuedOrSubscribed",
                                                                                                                                    "referencedDeclaration": 8072,
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                            "value": "issues"
                                                                                                                                                        },
                                                                                                                                                        "id": 2425,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14703:6:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2360,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "issuer"
                                                                                                                                                        },
                                                                                                                                                        "id": 2426,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14710:6:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2427,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "14703:14:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "tokenContract"
                                                                                                                                                },
                                                                                                                                                "id": 2428,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14718:13:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2429,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14703:29:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2430,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "14703:52:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2431,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "14689:67:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2432,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "14516:241:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2433,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "14479:279:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2434,
                                                                                                "name": "Assignment",
                                                                                                "src": "14460:298:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2435,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "14460:298:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "tuple()",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                13010,
                                                                                                                13011
                                                                                                            ],
                                                                                                            "referencedDeclaration": 13010,
                                                                                                            "type": "function (bool) pure",
                                                                                                            "value": "require"
                                                                                                        },
                                                                                                        "id": 2436,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14781:7:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "!",
                                                                                                            "prefix": true,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 1422,
                                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                                            "value": "lock"
                                                                                                                        },
                                                                                                                        "id": 2437,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14790:4:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "6c69717569646174696f6e",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "string",
                                                                                                                            "type": "literal_string \"liquidation\"",
                                                                                                                            "value": "liquidation"
                                                                                                                        },
                                                                                                                        "id": 2438,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "14795:13:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2439,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "14790:19:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2440,
                                                                                                        "name": "UnaryOperation",
                                                                                                        "src": "14789:20:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2441,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "14781:29:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2442,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "14781:29:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 1422,
                                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                                    "value": "lock"
                                                                                                                },
                                                                                                                "id": 2443,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14833:4:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "6c69717569646174696f6e",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"liquidation\"",
                                                                                                                    "value": "liquidation"
                                                                                                                },
                                                                                                                "id": 2444,
                                                                                                                "name": "Literal",
                                                                                                                "src": "14838:13:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2445,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "14833:19:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "74727565",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "bool",
                                                                                                            "type": "bool",
                                                                                                            "value": "true"
                                                                                                        },
                                                                                                        "id": 2446,
                                                                                                        "name": "Literal",
                                                                                                        "src": "14855:4:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2447,
                                                                                                "name": "Assignment",
                                                                                                "src": "14833:26:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2448,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "14833:26:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "falseBody": null
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": ">=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2371,
                                                                                                            "type": "uint256",
                                                                                                            "value": "redemptionAmount"
                                                                                                        },
                                                                                                        "id": 2449,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14905:16:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 2450,
                                                                                                        "name": "Literal",
                                                                                                        "src": "14925:1:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2451,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "14905:21:14"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "assignments": [
                                                                                                                2453
                                                                                                            ]
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "constant": false,
                                                                                                                    "name": "paidInCurrency",
                                                                                                                    "scope": 2584,
                                                                                                                    "stateVariable": false,
                                                                                                                    "storageLocation": "default",
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": null,
                                                                                                                    "visibility": "internal"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "name": "bytes32",
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "id": 2452,
                                                                                                                        "name": "ElementaryTypeName",
                                                                                                                        "src": "14954:7:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2453,
                                                                                                                "name": "VariableDeclaration",
                                                                                                                "src": "14954:22:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "paidInCurrency",
                                                                                                                    "referencedDeclaration": 8070,
                                                                                                                    "type": "bytes32"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "issues"
                                                                                                                                        },
                                                                                                                                        "id": 2454,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "14979:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "address"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "counterParties",
                                                                                                                                                    "referencedDeclaration": 8077,
                                                                                                                                                    "type": "address[] storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 1355,
                                                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                            "value": "purchases"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 2455,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14986:9:14"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "payer"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 2456,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "14996:5:14"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 2457,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "14986:16:14"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "tokenContract"
                                                                                                                                                                },
                                                                                                                                                                "id": 2458,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15003:13:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2459,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "14986:31:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2460,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "14986:46:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "hexvalue": "30",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "subdenomination": null,
                                                                                                                                                    "token": "number",
                                                                                                                                                    "type": "int_const 0",
                                                                                                                                                    "value": "0"
                                                                                                                                                },
                                                                                                                                                "id": 2461,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "15033:1:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2462,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14986:49:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2463,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14979:57:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "tokenContract"
                                                                                                                                },
                                                                                                                                "id": 2464,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15037:13:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2465,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "14979:72:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2466,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "14979:87:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2467,
                                                                                                        "name": "VariableDeclarationStatement",
                                                                                                        "src": "14954:112:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "=",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2371,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "redemptionAmount"
                                                                                                                        },
                                                                                                                        "id": 2468,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15147:16:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "uint256",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                            "typeString": "bytes32"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                                                                            "typeString": "literal_string \"redemption\""
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3468,
                                                                                                                                    "type": "function (uint256,bytes32,bytes32) returns (uint256)",
                                                                                                                                    "value": "payFee"
                                                                                                                                },
                                                                                                                                "id": 2469,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15166:6:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2371,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "redemptionAmount"
                                                                                                                                },
                                                                                                                                "id": 2470,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15173:16:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2453,
                                                                                                                                    "type": "bytes32",
                                                                                                                                    "value": "paidInCurrency"
                                                                                                                                },
                                                                                                                                "id": 2471,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15191:14:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "726564656d7074696f6e",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "string",
                                                                                                                                    "type": "literal_string \"redemption\"",
                                                                                                                                    "value": "redemption"
                                                                                                                                },
                                                                                                                                "id": 2472,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "15207:12:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2473,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "15166:54:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2474,
                                                                                                                "name": "Assignment",
                                                                                                                "src": "15147:73:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2475,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "15147:73:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "assignments": [
                                                                                                                2477
                                                                                                            ],
                                                                                                            "initialValue": null
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "constant": false,
                                                                                                                    "name": "viaAddress",
                                                                                                                    "scope": 2584,
                                                                                                                    "stateVariable": false,
                                                                                                                    "storageLocation": "default",
                                                                                                                    "type": "address",
                                                                                                                    "value": null,
                                                                                                                    "visibility": "internal"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "name": "address",
                                                                                                                            "stateMutability": "nonpayable",
                                                                                                                            "type": "address"
                                                                                                                        },
                                                                                                                        "id": 2476,
                                                                                                                        "name": "ElementaryTypeName",
                                                                                                                        "src": "15247:7:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2477,
                                                                                                                "name": "VariableDeclaration",
                                                                                                                "src": "15247:18:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2478,
                                                                                                        "name": "VariableDeclarationStatement",
                                                                                                        "src": "15247:18:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "bool",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                    "typeString": "bytes32"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "checkSupportForToken",
                                                                                                                            "referencedDeclaration": 8394,
                                                                                                                            "type": "function (bytes32) view external returns (bool)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1333,
                                                                                                                                    "type": "contract ViaFactory",
                                                                                                                                    "value": "factory"
                                                                                                                                },
                                                                                                                                "id": 2479,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "15295:7:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2480,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "15295:28:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2453,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "paidInCurrency"
                                                                                                                        },
                                                                                                                        "id": 2481,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15324:14:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2482,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "15295:44:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "=",
                                                                                                                                    "type": "address"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2477,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "viaAddress"
                                                                                                                                        },
                                                                                                                                        "id": 2483,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15371:10:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "address",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "getCurrencyToken",
                                                                                                                                                    "referencedDeclaration": 8401,
                                                                                                                                                    "type": "function (bytes32) view external returns (address)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 1333,
                                                                                                                                                            "type": "contract ViaFactory",
                                                                                                                                                            "value": "factory"
                                                                                                                                                        },
                                                                                                                                                        "id": 2484,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15384:7:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2485,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "15384:24:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2453,
                                                                                                                                                    "type": "bytes32",
                                                                                                                                                    "value": "paidInCurrency"
                                                                                                                                                },
                                                                                                                                                "id": 2486,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15409:14:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2487,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "15384:40:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2488,
                                                                                                                                "name": "Assignment",
                                                                                                                                "src": "15371:53:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2489,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "15371:53:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2490,
                                                                                                                "name": "Block",
                                                                                                                "src": "15340:112:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "=",
                                                                                                                                    "type": "address"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2477,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "viaAddress"
                                                                                                                                        },
                                                                                                                                        "id": 2491,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15513:10:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "address",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                                                            "typeString": "bytes32"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "getIssuer",
                                                                                                                                                    "referencedDeclaration": 8258,
                                                                                                                                                    "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 1333,
                                                                                                                                                            "type": "contract ViaFactory",
                                                                                                                                                            "value": "factory"
                                                                                                                                                        },
                                                                                                                                                        "id": 2492,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15526:7:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2493,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "15526:17:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "hexvalue": "56696143617368",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "subdenomination": null,
                                                                                                                                                    "token": "string",
                                                                                                                                                    "type": "literal_string \"ViaCash\"",
                                                                                                                                                    "value": "ViaCash"
                                                                                                                                                },
                                                                                                                                                "id": 2494,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "15544:9:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2453,
                                                                                                                                                    "type": "bytes32",
                                                                                                                                                    "value": "paidInCurrency"
                                                                                                                                                },
                                                                                                                                                "id": 2495,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15555:14:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2496,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "15526:44:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2497,
                                                                                                                                "name": "Assignment",
                                                                                                                                "src": "15513:57:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2498,
                                                                                                                        "name": "ExpressionStatement",
                                                                                                                        "src": "15513:57:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2499,
                                                                                                                "name": "Block",
                                                                                                                "src": "15482:116:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2500,
                                                                                                        "name": "IfStatement",
                                                                                                        "src": "15292:306:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "tuple()",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 3359,
                                                                                                                            "type": "function (address,uint256,address)",
                                                                                                                            "value": "send"
                                                                                                                        },
                                                                                                                        "id": 2501,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15624:4:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2477,
                                                                                                                            "type": "address",
                                                                                                                            "value": "viaAddress"
                                                                                                                        },
                                                                                                                        "id": 2502,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15629:10:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2371,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "redemptionAmount"
                                                                                                                        },
                                                                                                                        "id": 2503,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15641:16:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                            "type": "address",
                                                                                                                            "value": "payer"
                                                                                                                        },
                                                                                                                        "id": 2504,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15659:5:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2505,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "15624:41:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2506,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "15624:41:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "tuple()",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "reduceSupply",
                                                                                                                            "referencedDeclaration": 8450,
                                                                                                                            "type": "function (uint256) external"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "contract ViaToken",
                                                                                                                                    "type_conversion": true
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 8499,
                                                                                                                                            "type": "type(contract ViaToken)",
                                                                                                                                            "value": "ViaToken"
                                                                                                                                        },
                                                                                                                                        "id": 2507,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15752:8:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "tokenContract"
                                                                                                                                        },
                                                                                                                                        "id": 2508,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15761:13:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2509,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "15752:23:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2510,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "15752:36:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2323,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "amount"
                                                                                                                        },
                                                                                                                        "id": 2511,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15789:6:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2512,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "15752:44:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2513,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "15752:44:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "tuple()",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "reduceBalance",
                                                                                                                            "referencedDeclaration": 8457,
                                                                                                                            "type": "function (address,uint256) external"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "contract ViaToken",
                                                                                                                                    "type_conversion": true
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 8499,
                                                                                                                                            "type": "type(contract ViaToken)",
                                                                                                                                            "value": "ViaToken"
                                                                                                                                        },
                                                                                                                                        "id": 2514,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15910:8:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "tokenContract"
                                                                                                                                        },
                                                                                                                                        "id": 2515,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15919:13:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2516,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "15910:23:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2517,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "15910:37:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                            "type": "address",
                                                                                                                            "value": "payer"
                                                                                                                        },
                                                                                                                        "id": 2518,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15948:5:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2323,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "amount"
                                                                                                                        },
                                                                                                                        "id": 2519,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15955:6:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2520,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "15910:52:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2521,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "15910:52:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "tuple()",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                    "typeString": "bytes32"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                    "typeString": "bytes32"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 1418,
                                                                                                                            "type": "function (address,address,uint256,bytes32,uint256,bytes32)",
                                                                                                                            "value": "BondLiquidated"
                                                                                                                        },
                                                                                                                        "id": 2522,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16036:14:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                            "type": "address",
                                                                                                                            "value": "payer"
                                                                                                                        },
                                                                                                                        "id": 2523,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16051:5:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                            "type": "address",
                                                                                                                            "value": "tokenContract"
                                                                                                                        },
                                                                                                                        "id": 2524,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16058:13:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2323,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "amount"
                                                                                                                        },
                                                                                                                        "id": 2525,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16073:6:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2327,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "tokenName"
                                                                                                                        },
                                                                                                                        "id": 2526,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16081:9:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2371,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "redemptionAmount"
                                                                                                                        },
                                                                                                                        "id": 2527,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16092:16:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2453,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "paidInCurrency"
                                                                                                                        },
                                                                                                                        "id": 2528,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16110:14:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2529,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "16036:89:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2530,
                                                                                                        "name": "EmitStatement",
                                                                                                        "src": "16031:94:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "assignments": [
                                                                                                                2532
                                                                                                            ]
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "constant": false,
                                                                                                                    "name": "length",
                                                                                                                    "scope": 2584,
                                                                                                                    "stateVariable": false,
                                                                                                                    "storageLocation": "default",
                                                                                                                    "type": "uint256",
                                                                                                                    "value": null,
                                                                                                                    "visibility": "internal"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "name": "uint",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "id": 2531,
                                                                                                                        "name": "ElementaryTypeName",
                                                                                                                        "src": "16239:4:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2532,
                                                                                                                "name": "VariableDeclaration",
                                                                                                                "src": "16239:11:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "length",
                                                                                                                    "referencedDeclaration": null,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "counterParties",
                                                                                                                            "referencedDeclaration": 8077,
                                                                                                                            "type": "address[] storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                    "value": "issues"
                                                                                                                                                },
                                                                                                                                                "id": 2533,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16253:6:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2360,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "issuer"
                                                                                                                                                },
                                                                                                                                                "id": 2534,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16260:6:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2535,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "16253:14:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "tokenContract"
                                                                                                                                        },
                                                                                                                                        "id": 2536,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16268:13:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2537,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "16253:29:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2538,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "16253:44:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2539,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "16253:51:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2540,
                                                                                                        "name": "VariableDeclarationStatement",
                                                                                                        "src": "16239:65:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "assignments": [
                                                                                                                        2542
                                                                                                                    ]
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "constant": false,
                                                                                                                            "name": "p",
                                                                                                                            "scope": 2575,
                                                                                                                            "stateVariable": false,
                                                                                                                            "storageLocation": "default",
                                                                                                                            "type": "uint256",
                                                                                                                            "value": null,
                                                                                                                            "visibility": "internal"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "name": "uint",
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "id": 2541,
                                                                                                                                "name": "ElementaryTypeName",
                                                                                                                                "src": "16335:4:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2542,
                                                                                                                        "name": "VariableDeclaration",
                                                                                                                        "src": "16335:6:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "30",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "number",
                                                                                                                            "type": "int_const 0",
                                                                                                                            "value": "0"
                                                                                                                        },
                                                                                                                        "id": 2543,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "16342:1:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2544,
                                                                                                                "name": "VariableDeclarationStatement",
                                                                                                                "src": "16335:8:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "<",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2542,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "p"
                                                                                                                        },
                                                                                                                        "id": 2545,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16345:1:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2532,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "length"
                                                                                                                        },
                                                                                                                        "id": 2546,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "16347:6:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2547,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "16345:8:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "++",
                                                                                                                            "prefix": false,
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2542,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "p"
                                                                                                                                },
                                                                                                                                "id": 2548,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "16355:1:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2549,
                                                                                                                        "name": "UnaryOperation",
                                                                                                                        "src": "16355:3:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2550,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "16355:3:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "falseBody": null
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "commonType": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "==",
                                                                                                                                    "type": "bool"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "address"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "counterParties",
                                                                                                                                                    "referencedDeclaration": 8077,
                                                                                                                                                    "type": "address[] storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                            "value": "issues"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 2551,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16393:6:14"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 2360,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "issuer"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 2552,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16400:6:14"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 2553,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "16393:14:14"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "tokenContract"
                                                                                                                                                                },
                                                                                                                                                                "id": 2554,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "16408:13:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2555,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "16393:29:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2556,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "16393:44:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2542,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "p"
                                                                                                                                                },
                                                                                                                                                "id": 2557,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16438:1:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2558,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "16393:47:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "payer"
                                                                                                                                        },
                                                                                                                                        "id": 2559,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16442:5:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2560,
                                                                                                                                "name": "BinaryOperation",
                                                                                                                                "src": "16393:54:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "delete",
                                                                                                                                                    "prefix": true,
                                                                                                                                                    "type": "tuple()"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isInlineArray": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": true,
                                                                                                                                                            "type": "address"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": true,
                                                                                                                                                                    "type": "address"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "member_name": "counterParties",
                                                                                                                                                                            "referencedDeclaration": 8077,
                                                                                                                                                                            "type": "address[] storage ref"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                                                    "value": "issues"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 2561,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "16490:6:14"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 2360,
                                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                                    "value": "issuer"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 2562,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "16497:6:14"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 2563,
                                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                                        "src": "16490:14:14"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "tokenContract"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 2564,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16505:13:14"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 2565,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "16490:29:14"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 2566,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "16490:44:14"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 2542,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "p"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 2567,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16535:1:14"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 2568,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "16490:47:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2569,
                                                                                                                                                        "name": "TupleExpression",
                                                                                                                                                        "src": "16489:49:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2570,
                                                                                                                                                "name": "UnaryOperation",
                                                                                                                                                "src": "16483:55:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2571,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "16483:55:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2572,
                                                                                                                                "name": "Block",
                                                                                                                                "src": "16448:122:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2573,
                                                                                                                        "name": "IfStatement",
                                                                                                                        "src": "16390:180:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2574,
                                                                                                                "name": "Block",
                                                                                                                "src": "16359:258:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2575,
                                                                                                        "name": "ForStatement",
                                                                                                        "src": "16331:286:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "delete",
                                                                                                                    "prefix": true,
                                                                                                                    "type": "tuple()"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isInlineArray": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": true,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                    "value": "purchases"
                                                                                                                                                },
                                                                                                                                                "id": 2576,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16733:9:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "payer"
                                                                                                                                                },
                                                                                                                                                "id": 2577,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "16743:5:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2578,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "16733:16:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "tokenContract"
                                                                                                                                        },
                                                                                                                                        "id": 2579,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "16750:13:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2580,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "16733:31:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2581,
                                                                                                                        "name": "TupleExpression",
                                                                                                                        "src": "16732:33:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2582,
                                                                                                                "name": "UnaryOperation",
                                                                                                                "src": "16726:39:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2583,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "16726:39:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2584,
                                                                                                "name": "Block",
                                                                                                "src": "14927:1862:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2585,
                                                                                        "name": "IfStatement",
                                                                                        "src": "14902:1887:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 1422,
                                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                                    "value": "lock"
                                                                                                                },
                                                                                                                "id": 2586,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "16811:4:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "6c69717569646174696f6e",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"liquidation\"",
                                                                                                                    "value": "liquidation"
                                                                                                                },
                                                                                                                "id": 2587,
                                                                                                                "name": "Literal",
                                                                                                                "src": "16816:13:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2588,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "16811:19:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "66616c7365",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "bool",
                                                                                                            "type": "bool",
                                                                                                            "value": "false"
                                                                                                        },
                                                                                                        "id": 2589,
                                                                                                        "name": "Literal",
                                                                                                        "src": "16833:5:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2590,
                                                                                                "name": "Assignment",
                                                                                                "src": "16811:27:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2591,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "16811:27:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2340,
                                                                                                            "type": "bool",
                                                                                                            "value": "status"
                                                                                                        },
                                                                                                        "id": 2592,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "16861:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "74727565",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "bool",
                                                                                                            "type": "bool",
                                                                                                            "value": "true"
                                                                                                        },
                                                                                                        "id": 2593,
                                                                                                        "name": "Literal",
                                                                                                        "src": "16870:4:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2594,
                                                                                                "name": "Assignment",
                                                                                                "src": "16861:13:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2595,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "16861:13:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2596,
                                                                                "name": "Block",
                                                                                "src": "13907:2987:14"
                                                                            }
                                                                        ],
                                                                        "id": 2597,
                                                                        "name": "IfStatement",
                                                                        "src": "13845:3049:14"
                                                                    }
                                                                ],
                                                                "id": 2598,
                                                                "name": "Block",
                                                                "src": "13774:3135:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "falseBody": null
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "getBalance",
                                                                                            "referencedDeclaration": 8464,
                                                                                            "type": "function (address) external returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "contract ViaToken",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8499,
                                                                                                            "type": "type(contract ViaToken)",
                                                                                                            "value": "ViaToken"
                                                                                                        },
                                                                                                        "id": 2599,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17047:8:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2331,
                                                                                                            "type": "address",
                                                                                                            "value": "tokenContract"
                                                                                                        },
                                                                                                        "id": 2600,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17056:13:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2601,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "17047:23:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2602,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "17047:34:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2325,
                                                                                            "type": "address",
                                                                                            "value": "payer"
                                                                                        },
                                                                                        "id": 2603,
                                                                                        "name": "Identifier",
                                                                                        "src": "17082:5:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2604,
                                                                                "name": "FunctionCall",
                                                                                "src": "17047:41:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2323,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 2605,
                                                                                "name": "Identifier",
                                                                                "src": "17092:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 2606,
                                                                        "name": "BinaryOperation",
                                                                        "src": "17047:51:14"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "tuple()",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bool",
                                                                                                            "typeString": "bool"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        13010,
                                                                                                        13011
                                                                                                    ],
                                                                                                    "referencedDeclaration": 13010,
                                                                                                    "type": "function (bool) pure",
                                                                                                    "value": "require"
                                                                                                },
                                                                                                "id": 2607,
                                                                                                "name": "Identifier",
                                                                                                "src": "17118:7:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "!",
                                                                                                    "prefix": true,
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 1422,
                                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                                    "value": "lock"
                                                                                                                },
                                                                                                                "id": 2608,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "17127:4:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "726564656d7074696f6e",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"redemption\"",
                                                                                                                    "value": "redemption"
                                                                                                                },
                                                                                                                "id": 2609,
                                                                                                                "name": "Literal",
                                                                                                                "src": "17132:12:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2610,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "17127:18:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2611,
                                                                                                "name": "UnaryOperation",
                                                                                                "src": "17126:19:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2612,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "17118:28:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2613,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "17118:28:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1422,
                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                            "value": "lock"
                                                                                                        },
                                                                                                        "id": 2614,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17165:4:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "726564656d7074696f6e",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"redemption\"",
                                                                                                            "value": "redemption"
                                                                                                        },
                                                                                                        "id": 2615,
                                                                                                        "name": "Literal",
                                                                                                        "src": "17170:12:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2616,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "17165:18:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "74727565",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "true"
                                                                                                },
                                                                                                "id": 2617,
                                                                                                "name": "Literal",
                                                                                                "src": "17186:4:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2618,
                                                                                        "name": "Assignment",
                                                                                        "src": "17165:25:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2619,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "17165:25:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "assignments": [
                                                                                        2621
                                                                                    ]
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "constant": false,
                                                                                            "name": "paidInCurrency",
                                                                                            "scope": 2722,
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "type": "bytes32",
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "bytes32",
                                                                                                    "type": "bytes32"
                                                                                                },
                                                                                                "id": 2620,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "17209:7:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2621,
                                                                                        "name": "VariableDeclaration",
                                                                                        "src": "17209:22:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "paidInCurrency",
                                                                                            "referencedDeclaration": 8070,
                                                                                            "type": "bytes32"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                    "value": "issues"
                                                                                                                },
                                                                                                                "id": 2622,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "17234:6:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                    "type": "address",
                                                                                                                    "value": "payer"
                                                                                                                },
                                                                                                                "id": 2623,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "17241:5:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2624,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "17234:13:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2331,
                                                                                                            "type": "address",
                                                                                                            "value": "tokenContract"
                                                                                                        },
                                                                                                        "id": 2625,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17248:13:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2626,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "17234:28:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2627,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "17234:43:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2628,
                                                                                "name": "VariableDeclarationStatement",
                                                                                "src": "17209:68:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "assignments": [
                                                                                        2630
                                                                                    ]
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "constant": false,
                                                                                            "name": "uncumberedAmount",
                                                                                            "scope": 2722,
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "type": "uint256",
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "uint256",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "id": 2629,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "17390:7:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2630,
                                                                                        "name": "VariableDeclaration",
                                                                                        "src": "17390:24:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "mulDown",
                                                                                                    "referencedDeclaration": 8604,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 2631,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17417:10:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2632,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "17417:18:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "divDown",
                                                                                                            "referencedDeclaration": 8695,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                    "value": "FixedPoint"
                                                                                                                },
                                                                                                                "id": 2633,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "17436:10:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2634,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "17436:18:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2323,
                                                                                                            "type": "uint256",
                                                                                                            "value": "amount"
                                                                                                        },
                                                                                                        "id": 2635,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17455:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "parValue",
                                                                                                            "referencedDeclaration": 8066,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                    "value": "issues"
                                                                                                                                },
                                                                                                                                "id": 2636,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "17463:6:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2325,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "payer"
                                                                                                                                },
                                                                                                                                "id": 2637,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "17470:5:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2638,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "17463:13:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2331,
                                                                                                                            "type": "address",
                                                                                                                            "value": "tokenContract"
                                                                                                                        },
                                                                                                                        "id": 2639,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "17477:13:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2640,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "17463:28:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2641,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "17463:37:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2642,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "17436:65:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "paidInAmount",
                                                                                                    "referencedDeclaration": 8068,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                            "value": "issues"
                                                                                                                        },
                                                                                                                        "id": 2643,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "17503:6:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2325,
                                                                                                                            "type": "address",
                                                                                                                            "value": "payer"
                                                                                                                        },
                                                                                                                        "id": 2644,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "17510:5:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2645,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "17503:13:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                    "type": "address",
                                                                                                                    "value": "tokenContract"
                                                                                                                },
                                                                                                                "id": 2646,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "17517:13:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2647,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "17503:28:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2648,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "17503:41:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2649,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "17417:128:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2650,
                                                                                "name": "VariableDeclarationStatement",
                                                                                "src": "17390:155:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2630,
                                                                                                    "type": "uint256",
                                                                                                    "value": "uncumberedAmount"
                                                                                                },
                                                                                                "id": 2651,
                                                                                                "name": "Identifier",
                                                                                                "src": "17610:16:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                                                    "typeString": "literal_string \"redemption\""
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3468,
                                                                                                            "type": "function (uint256,bytes32,bytes32) returns (uint256)",
                                                                                                            "value": "payFee"
                                                                                                        },
                                                                                                        "id": 2652,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17629:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2630,
                                                                                                            "type": "uint256",
                                                                                                            "value": "uncumberedAmount"
                                                                                                        },
                                                                                                        "id": 2653,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17636:16:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2621,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "paidInCurrency"
                                                                                                        },
                                                                                                        "id": 2654,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17654:14:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "726564656d7074696f6e",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"redemption\"",
                                                                                                            "value": "redemption"
                                                                                                        },
                                                                                                        "id": 2655,
                                                                                                        "name": "Literal",
                                                                                                        "src": "17670:12:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2656,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "17629:54:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2657,
                                                                                        "name": "Assignment",
                                                                                        "src": "17610:73:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2658,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "17610:73:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "assignments": [
                                                                                        2660
                                                                                    ],
                                                                                    "initialValue": null
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "constant": false,
                                                                                            "name": "viaAddress",
                                                                                            "scope": 2722,
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "type": "address",
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "address",
                                                                                                    "stateMutability": "nonpayable",
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "id": 2659,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "17791:7:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2660,
                                                                                        "name": "VariableDeclaration",
                                                                                        "src": "17791:18:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2661,
                                                                                "name": "VariableDeclarationStatement",
                                                                                "src": "17791:18:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "bool",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "checkSupportForToken",
                                                                                                    "referencedDeclaration": 8394,
                                                                                                    "type": "function (bytes32) view external returns (bool)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1333,
                                                                                                            "type": "contract ViaFactory",
                                                                                                            "value": "factory"
                                                                                                        },
                                                                                                        "id": 2662,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17831:7:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2663,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "17831:28:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2621,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "paidInCurrency"
                                                                                                },
                                                                                                "id": 2664,
                                                                                                "name": "Identifier",
                                                                                                "src": "17860:14:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2665,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "17831:44:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2660,
                                                                                                            "type": "address",
                                                                                                            "value": "viaAddress"
                                                                                                        },
                                                                                                        "id": 2666,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17898:10:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "address",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "getCurrencyToken",
                                                                                                                    "referencedDeclaration": 8401,
                                                                                                                    "type": "function (bytes32) view external returns (address)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 1333,
                                                                                                                            "type": "contract ViaFactory",
                                                                                                                            "value": "factory"
                                                                                                                        },
                                                                                                                        "id": 2667,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "17911:7:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2668,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "17911:24:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2621,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "paidInCurrency"
                                                                                                                },
                                                                                                                "id": 2669,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "17936:14:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2670,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "17911:40:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2671,
                                                                                                "name": "Assignment",
                                                                                                "src": "17898:53:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2672,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "17898:53:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2660,
                                                                                                            "type": "address",
                                                                                                            "value": "viaAddress"
                                                                                                        },
                                                                                                        "id": 2673,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "17996:10:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "address",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "getIssuer",
                                                                                                                    "referencedDeclaration": 8258,
                                                                                                                    "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 1333,
                                                                                                                            "type": "contract ViaFactory",
                                                                                                                            "value": "factory"
                                                                                                                        },
                                                                                                                        "id": 2674,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "18009:7:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2675,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "18009:17:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "56696143617368",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"ViaCash\"",
                                                                                                                    "value": "ViaCash"
                                                                                                                },
                                                                                                                "id": 2676,
                                                                                                                "name": "Literal",
                                                                                                                "src": "18027:9:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2621,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "paidInCurrency"
                                                                                                                },
                                                                                                                "id": 2677,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "18038:14:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2678,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "18009:44:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2679,
                                                                                                "name": "Assignment",
                                                                                                "src": "17996:57:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2680,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "17996:57:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2681,
                                                                                "name": "IfStatement",
                                                                                "src": "17828:225:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "tuple()",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3359,
                                                                                                    "type": "function (address,uint256,address)",
                                                                                                    "value": "send"
                                                                                                },
                                                                                                "id": 2682,
                                                                                                "name": "Identifier",
                                                                                                "src": "18072:4:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2660,
                                                                                                    "type": "address",
                                                                                                    "value": "viaAddress"
                                                                                                },
                                                                                                "id": 2683,
                                                                                                "name": "Identifier",
                                                                                                "src": "18077:10:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2630,
                                                                                                    "type": "uint256",
                                                                                                    "value": "uncumberedAmount"
                                                                                                },
                                                                                                "id": 2684,
                                                                                                "name": "Identifier",
                                                                                                "src": "18089:16:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2325,
                                                                                                    "type": "address",
                                                                                                    "value": "payer"
                                                                                                },
                                                                                                "id": 2685,
                                                                                                "name": "Identifier",
                                                                                                "src": "18107:5:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2686,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "18072:41:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2687,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "18072:41:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "tuple()",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "reduceSupply",
                                                                                                    "referencedDeclaration": 8450,
                                                                                                    "type": "function (uint256) external"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "contract ViaToken",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8499,
                                                                                                                    "type": "type(contract ViaToken)",
                                                                                                                    "value": "ViaToken"
                                                                                                                },
                                                                                                                "id": 2688,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "18184:8:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                    "type": "address",
                                                                                                                    "value": "tokenContract"
                                                                                                                },
                                                                                                                "id": 2689,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "18193:13:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2690,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "18184:23:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2691,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "18184:36:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2323,
                                                                                                    "type": "uint256",
                                                                                                    "value": "amount"
                                                                                                },
                                                                                                "id": 2692,
                                                                                                "name": "Identifier",
                                                                                                "src": "18221:6:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2693,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "18184:44:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2694,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "18184:44:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "tuple()",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "reduceBalance",
                                                                                                    "referencedDeclaration": 8457,
                                                                                                    "type": "function (address,uint256) external"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "contract ViaToken",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8499,
                                                                                                                    "type": "type(contract ViaToken)",
                                                                                                                    "value": "ViaToken"
                                                                                                                },
                                                                                                                "id": 2695,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "18318:8:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                    "type": "address",
                                                                                                                    "value": "tokenContract"
                                                                                                                },
                                                                                                                "id": 2696,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "18327:13:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2697,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "18318:23:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2698,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "18318:37:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2325,
                                                                                                    "type": "address",
                                                                                                    "value": "payer"
                                                                                                },
                                                                                                "id": 2699,
                                                                                                "name": "Identifier",
                                                                                                "src": "18356:5:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2323,
                                                                                                    "type": "uint256",
                                                                                                    "value": "amount"
                                                                                                },
                                                                                                "id": 2700,
                                                                                                "name": "Identifier",
                                                                                                "src": "18363:6:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2701,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "18318:52:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2702,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "18318:52:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "tuple()",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1388,
                                                                                                    "type": "function (address,address,uint256,bytes32,uint256,bytes32)",
                                                                                                    "value": "BondRedeemed"
                                                                                                },
                                                                                                "id": 2703,
                                                                                                "name": "Identifier",
                                                                                                "src": "18428:12:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2325,
                                                                                                    "type": "address",
                                                                                                    "value": "payer"
                                                                                                },
                                                                                                "id": 2704,
                                                                                                "name": "Identifier",
                                                                                                "src": "18441:5:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2331,
                                                                                                    "type": "address",
                                                                                                    "value": "tokenContract"
                                                                                                },
                                                                                                "id": 2705,
                                                                                                "name": "Identifier",
                                                                                                "src": "18448:13:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2323,
                                                                                                    "type": "uint256",
                                                                                                    "value": "amount"
                                                                                                },
                                                                                                "id": 2706,
                                                                                                "name": "Identifier",
                                                                                                "src": "18463:6:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2327,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenName"
                                                                                                },
                                                                                                "id": 2707,
                                                                                                "name": "Identifier",
                                                                                                "src": "18471:9:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2630,
                                                                                                    "type": "uint256",
                                                                                                    "value": "uncumberedAmount"
                                                                                                },
                                                                                                "id": 2708,
                                                                                                "name": "Identifier",
                                                                                                "src": "18482:16:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2621,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "paidInCurrency"
                                                                                                },
                                                                                                "id": 2709,
                                                                                                "name": "Identifier",
                                                                                                "src": "18500:14:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2710,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "18428:87:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2711,
                                                                                "name": "EmitStatement",
                                                                                "src": "18423:92:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1422,
                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                            "value": "lock"
                                                                                                        },
                                                                                                        "id": 2712,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "18534:4:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "726564656d7074696f6e",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"redemption\"",
                                                                                                            "value": "redemption"
                                                                                                        },
                                                                                                        "id": 2713,
                                                                                                        "name": "Literal",
                                                                                                        "src": "18539:12:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2714,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "18534:18:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "66616c7365",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "false"
                                                                                                },
                                                                                                "id": 2715,
                                                                                                "name": "Literal",
                                                                                                "src": "18555:5:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2716,
                                                                                        "name": "Assignment",
                                                                                        "src": "18534:26:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2717,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "18534:26:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2340,
                                                                                                    "type": "bool",
                                                                                                    "value": "status"
                                                                                                },
                                                                                                "id": 2718,
                                                                                                "name": "Identifier",
                                                                                                "src": "18580:6:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "74727565",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "true"
                                                                                                },
                                                                                                "id": 2719,
                                                                                                "name": "Literal",
                                                                                                "src": "18589:4:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2720,
                                                                                        "name": "Assignment",
                                                                                        "src": "18580:13:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2721,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "18580:13:14"
                                                                            }
                                                                        ],
                                                                        "id": 2722,
                                                                        "name": "Block",
                                                                        "src": "17099:1510:14"
                                                                    }
                                                                ],
                                                                "id": 2723,
                                                                "name": "IfStatement",
                                                                "src": "17044:1565:14"
                                                            }
                                                        ],
                                                        "id": 2724,
                                                        "name": "IfStatement",
                                                        "src": "13710:4899:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 2335
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2340,
                                                                    "type": "bool",
                                                                    "value": "status"
                                                                },
                                                                "id": 2725,
                                                                "name": "Identifier",
                                                                "src": "18630:6:14"
                                                            }
                                                        ],
                                                        "id": 2726,
                                                        "name": "Return",
                                                        "src": "18623:13:14"
                                                    }
                                                ],
                                                "id": 2727,
                                                "name": "Block",
                                                "src": "13589:5059:14"
                                            },
                                            {
                                                "attributes": {
                                                    "falseBody": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2329,
                                                                    "type": "bytes32",
                                                                    "value": "action"
                                                                },
                                                                "id": 2728,
                                                                "name": "Identifier",
                                                                "src": "18807:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "436173685472616e73666572",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"CashTransfer\"",
                                                                    "value": "CashTransfer"
                                                                },
                                                                "id": 2729,
                                                                "name": "Literal",
                                                                "src": "18815:14:14"
                                                            }
                                                        ],
                                                        "id": 2730,
                                                        "name": "BinaryOperation",
                                                        "src": "18807:22:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        2732
                                                                    ],
                                                                    "initialValue": null
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "viaAddress",
                                                                            "scope": 3090,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "address",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address",
                                                                                    "stateMutability": "nonpayable",
                                                                                    "type": "address"
                                                                                },
                                                                                "id": 2731,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "18857:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 2732,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "18857:18:14"
                                                                    }
                                                                ],
                                                                "id": 2733,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "18857:18:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        2735
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "status",
                                                                            "scope": 3090,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "bool",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "bool",
                                                                                    "type": "bool"
                                                                                },
                                                                                "id": 2734,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "18890:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 2735,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "18890:11:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "66616c7365",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "false"
                                                                        },
                                                                        "id": 2736,
                                                                        "name": "Literal",
                                                                        "src": "18904:5:14"
                                                                    }
                                                                ],
                                                                "id": 2737,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "18890:19:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        2739
                                                                    ],
                                                                    "initialValue": null
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "totalToRedeem",
                                                                            "scope": 3090,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "uint256",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "uint256",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "id": 2738,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "18924:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 2739,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "18924:21:14"
                                                                    }
                                                                ],
                                                                "id": 2740,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "18924:21:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        2742
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "issuer",
                                                                            "scope": 3090,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "address",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address",
                                                                                    "stateMutability": "nonpayable",
                                                                                    "type": "address"
                                                                                },
                                                                                "id": 2741,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "18960:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 2742,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "18960:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2325,
                                                                            "type": "address",
                                                                            "value": "payer"
                                                                        },
                                                                        "id": 2743,
                                                                        "name": "Identifier",
                                                                        "src": "18977:5:14"
                                                                    }
                                                                ],
                                                                "id": 2744,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "18960:22:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        2746
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "bondToken",
                                                                            "scope": 3090,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "address",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address",
                                                                                    "stateMutability": "nonpayable",
                                                                                    "type": "address"
                                                                                },
                                                                                "id": 2745,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "18997:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 2746,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "18997:17:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2331,
                                                                            "type": "address",
                                                                            "value": "tokenContract"
                                                                        },
                                                                        "id": 2747,
                                                                        "name": "Identifier",
                                                                        "src": "19017:13:14"
                                                                    }
                                                                ],
                                                                "id": 2748,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "18997:33:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        2750
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "redeemAmount",
                                                                            "scope": 3090,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "uint256",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "uint256",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "id": 2749,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "19045:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 2750,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "19045:20:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2323,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 2751,
                                                                        "name": "Identifier",
                                                                        "src": "19068:6:14"
                                                                    }
                                                                ],
                                                                "id": 2752,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "19045:29:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        2754
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "name": "bondTokenName",
                                                                            "scope": 3090,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "bytes32",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "bytes32",
                                                                                    "type": "bytes32"
                                                                                },
                                                                                "id": 2753,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "19089:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 2754,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "19089:21:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2327,
                                                                            "type": "bytes32",
                                                                            "value": "tokenName"
                                                                        },
                                                                        "id": 2755,
                                                                        "name": "Identifier",
                                                                        "src": "19113:9:14"
                                                                    }
                                                                ],
                                                                "id": 2756,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "19089:33:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "falseBody": null
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "timeIssuedOrSubscribed",
                                                                                    "referencedDeclaration": 8072,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1349,
                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                            "value": "issues"
                                                                                                        },
                                                                                                        "id": 2757,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "19140:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2742,
                                                                                                            "type": "address",
                                                                                                            "value": "issuer"
                                                                                                        },
                                                                                                        "id": 2758,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "19147:6:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2759,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "19140:14:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2746,
                                                                                                    "type": "address",
                                                                                                    "value": "bondToken"
                                                                                                },
                                                                                                "id": 2760,
                                                                                                "name": "Identifier",
                                                                                                "src": "19155:9:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2761,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "19140:25:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2762,
                                                                                "name": "MemberAccess",
                                                                                "src": "19140:48:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "30",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 0",
                                                                                    "value": "0"
                                                                                },
                                                                                "id": 2763,
                                                                                "name": "Literal",
                                                                                "src": "19191:1:14"
                                                                            }
                                                                        ],
                                                                        "id": 2764,
                                                                        "name": "BinaryOperation",
                                                                        "src": "19140:52:14"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "tuple()",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bool",
                                                                                                            "typeString": "bool"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        13010,
                                                                                                        13011
                                                                                                    ],
                                                                                                    "referencedDeclaration": 13010,
                                                                                                    "type": "function (bool) pure",
                                                                                                    "value": "require"
                                                                                                },
                                                                                                "id": 2765,
                                                                                                "name": "Identifier",
                                                                                                "src": "19215:7:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "!",
                                                                                                    "prefix": true,
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 1422,
                                                                                                                    "type": "mapping(bytes32 => bool)",
                                                                                                                    "value": "lock"
                                                                                                                },
                                                                                                                "id": 2766,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "19224:4:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "63617368726564656d7074696f6e",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"cashredemption\"",
                                                                                                                    "value": "cashredemption"
                                                                                                                },
                                                                                                                "id": 2767,
                                                                                                                "name": "Literal",
                                                                                                                "src": "19229:16:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2768,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "19224:22:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2769,
                                                                                                "name": "UnaryOperation",
                                                                                                "src": "19223:23:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2770,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "19215:32:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2771,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "19215:32:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1422,
                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                            "value": "lock"
                                                                                                        },
                                                                                                        "id": 2772,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "19266:4:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "63617368726564656d7074696f6e",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"cashredemption\"",
                                                                                                            "value": "cashredemption"
                                                                                                        },
                                                                                                        "id": 2773,
                                                                                                        "name": "Literal",
                                                                                                        "src": "19271:16:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2774,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "19266:22:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "74727565",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "true"
                                                                                                },
                                                                                                "id": 2775,
                                                                                                "name": "Literal",
                                                                                                "src": "19291:4:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2776,
                                                                                        "name": "Assignment",
                                                                                        "src": "19266:29:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2777,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "19266:29:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "bool",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "checkSupportForToken",
                                                                                                    "referencedDeclaration": 8394,
                                                                                                    "type": "function (bytes32) view external returns (bool)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1333,
                                                                                                            "type": "contract ViaFactory",
                                                                                                            "value": "factory"
                                                                                                        },
                                                                                                        "id": 2778,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "19330:7:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2779,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "19330:28:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2754,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "bondTokenName"
                                                                                                },
                                                                                                "id": 2780,
                                                                                                "name": "Identifier",
                                                                                                "src": "19359:13:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2781,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "19330:43:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2732,
                                                                                                                    "type": "address",
                                                                                                                    "value": "viaAddress"
                                                                                                                },
                                                                                                                "id": 2782,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "19397:10:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "address",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                    "typeString": "bytes32"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "getCurrencyToken",
                                                                                                                            "referencedDeclaration": 8401,
                                                                                                                            "type": "function (bytes32) view external returns (address)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1333,
                                                                                                                                    "type": "contract ViaFactory",
                                                                                                                                    "value": "factory"
                                                                                                                                },
                                                                                                                                "id": 2783,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "19410:7:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2784,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "19410:24:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2754,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "bondTokenName"
                                                                                                                        },
                                                                                                                        "id": 2785,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "19435:13:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2786,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "19410:39:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2787,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "19397:52:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2788,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "19397:52:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "falseBody": null
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "commonType": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "<",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "uint256",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "balanceOf",
                                                                                                                            "referencedDeclaration": 354,
                                                                                                                            "type": "function (address) view external returns (uint256)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "contract IERC20",
                                                                                                                                    "type_conversion": true
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 409,
                                                                                                                                            "type": "type(contract IERC20)",
                                                                                                                                            "value": "IERC20"
                                                                                                                                        },
                                                                                                                                        "id": 2789,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "19475:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2732,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "viaAddress"
                                                                                                                                        },
                                                                                                                                        "id": 2790,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "19482:10:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2791,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "19475:18:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2792,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "19475:28:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                            "type": "address",
                                                                                                                            "value": "issuer"
                                                                                                                        },
                                                                                                                        "id": 2793,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "19504:6:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2794,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "19475:36:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2750,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "redeemAmount"
                                                                                                                },
                                                                                                                "id": 2795,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "19512:12:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2796,
                                                                                                        "name": "BinaryOperation",
                                                                                                        "src": "19475:49:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "functionReturnParameters": 2335
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2735,
                                                                                                                    "type": "bool",
                                                                                                                    "value": "status"
                                                                                                                },
                                                                                                                "id": 2797,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "19558:6:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2798,
                                                                                                        "name": "Return",
                                                                                                        "src": "19551:13:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2799,
                                                                                                "name": "IfStatement",
                                                                                                "src": "19472:92:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2800,
                                                                                        "name": "Block",
                                                                                        "src": "19374:210:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2732,
                                                                                                                    "type": "address",
                                                                                                                    "value": "viaAddress"
                                                                                                                },
                                                                                                                "id": 2801,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "19629:10:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "address",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                    "typeString": "bytes32"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "getIssuer",
                                                                                                                            "referencedDeclaration": 8258,
                                                                                                                            "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1333,
                                                                                                                                    "type": "contract ViaFactory",
                                                                                                                                    "value": "factory"
                                                                                                                                },
                                                                                                                                "id": 2802,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "19642:7:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2803,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "19642:17:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "56696143617368",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "string",
                                                                                                                            "type": "literal_string \"ViaCash\"",
                                                                                                                            "value": "ViaCash"
                                                                                                                        },
                                                                                                                        "id": 2804,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "19660:9:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2754,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "bondTokenName"
                                                                                                                        },
                                                                                                                        "id": 2805,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "19671:13:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2806,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "19642:43:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2807,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "19629:56:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2808,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "19629:56:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "falseBody": null
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "!",
                                                                                                            "prefix": true,
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "bool",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "requestAddToBalance",
                                                                                                                            "referencedDeclaration": 8180,
                                                                                                                            "type": "function (uint256,address) external returns (bool)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "contract ViaCash",
                                                                                                                                    "type_conversion": true
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 8212,
                                                                                                                                            "type": "type(contract ViaCash)",
                                                                                                                                            "value": "ViaCash"
                                                                                                                                        },
                                                                                                                                        "id": 2809,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "19712:7:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2732,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "viaAddress"
                                                                                                                                        },
                                                                                                                                        "id": 2810,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "19720:10:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2811,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "19712:19:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2812,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "19712:39:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2750,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "redeemAmount"
                                                                                                                        },
                                                                                                                        "id": 2813,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "19752:12:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                            "type": "address",
                                                                                                                            "value": "issuer"
                                                                                                                        },
                                                                                                                        "id": 2814,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "19766:6:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2815,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "19712:61:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2816,
                                                                                                        "name": "UnaryOperation",
                                                                                                        "src": "19711:62:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "functionReturnParameters": 2335
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2735,
                                                                                                                            "type": "bool",
                                                                                                                            "value": "status"
                                                                                                                        },
                                                                                                                        "id": 2817,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "19808:6:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2818,
                                                                                                                "name": "Return",
                                                                                                                "src": "19801:13:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2819,
                                                                                                        "name": "Block",
                                                                                                        "src": "19774:64:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2820,
                                                                                                "name": "IfStatement",
                                                                                                "src": "19708:130:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2821,
                                                                                        "name": "Block",
                                                                                        "src": "19606:251:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2822,
                                                                                "name": "IfStatement",
                                                                                "src": "19327:530:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "assignments": [
                                                                                        2824
                                                                                    ]
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "constant": false,
                                                                                            "name": "p",
                                                                                            "scope": 3086,
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "type": "uint256",
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "uint",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "id": 2823,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "19950:4:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2824,
                                                                                        "name": "VariableDeclaration",
                                                                                        "src": "19950:6:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 2825,
                                                                                        "name": "Literal",
                                                                                        "src": "19959:1:14"
                                                                                    }
                                                                                ],
                                                                                "id": 2826,
                                                                                "name": "VariableDeclarationStatement",
                                                                                "src": "19950:10:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2824,
                                                                                                            "type": "uint256",
                                                                                                            "value": "p"
                                                                                                        },
                                                                                                        "id": 2827,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "19983:1:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 2828,
                                                                                                        "name": "Literal",
                                                                                                        "src": "19985:1:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2829,
                                                                                                "name": "Assignment",
                                                                                                "src": "19983:3:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2830,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "19983:3:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "<",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2824,
                                                                                                    "type": "uint256",
                                                                                                    "value": "p"
                                                                                                },
                                                                                                "id": 2831,
                                                                                                "name": "Identifier",
                                                                                                "src": "19988:1:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "length",
                                                                                                    "referencedDeclaration": null,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "counterParties",
                                                                                                            "referencedDeclaration": 8077,
                                                                                                            "type": "address[] storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                    "value": "issues"
                                                                                                                                },
                                                                                                                                "id": 2832,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "19990:6:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2742,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "issuer"
                                                                                                                                },
                                                                                                                                "id": 2833,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "19997:6:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2834,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "19990:14:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                            "type": "address",
                                                                                                                            "value": "bondToken"
                                                                                                                        },
                                                                                                                        "id": 2835,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "20005:9:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2836,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "19990:25:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2837,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "19990:40:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2838,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "19990:47:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2839,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "19988:49:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "++",
                                                                                                    "prefix": false,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2824,
                                                                                                            "type": "uint256",
                                                                                                            "value": "p"
                                                                                                        },
                                                                                                        "id": 2840,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20039:1:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2841,
                                                                                                "name": "UnaryOperation",
                                                                                                "src": "20039:3:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 2842,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "20039:3:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        2844
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "name": "purchaser",
                                                                                                            "scope": 3005,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "address",
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "address",
                                                                                                                    "stateMutability": "nonpayable",
                                                                                                                    "type": "address"
                                                                                                                },
                                                                                                                "id": 2843,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "20066:7:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2844,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "20066:17:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "counterParties",
                                                                                                                    "referencedDeclaration": 8077,
                                                                                                                    "type": "address[] storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "issues"
                                                                                                                                        },
                                                                                                                                        "id": 2845,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20086:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "issuer"
                                                                                                                                        },
                                                                                                                                        "id": 2846,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20093:6:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2847,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "20086:14:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "bondToken"
                                                                                                                                },
                                                                                                                                "id": 2848,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "20101:9:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2849,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "20086:25:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2850,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "20086:40:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2824,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "p"
                                                                                                                },
                                                                                                                "id": 2851,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "20127:1:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2852,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "20086:43:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2853,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "20066:63:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        2855
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "name": "proportionPurchased",
                                                                                                            "scope": 3005,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "uint256",
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "uint256",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "id": 2854,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "20344:7:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2855,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "20344:27:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "divDown",
                                                                                                                    "referencedDeclaration": 8695,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8909,
                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                            "value": "FixedPoint"
                                                                                                                        },
                                                                                                                        "id": 2856,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "20374:10:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2857,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "20374:18:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "purchasedIssueAmount",
                                                                                                                    "referencedDeclaration": 8074,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1355,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "purchases"
                                                                                                                                        },
                                                                                                                                        "id": 2858,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20393:9:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2844,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "purchaser"
                                                                                                                                        },
                                                                                                                                        "id": 2859,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20403:9:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2860,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "20393:20:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "bondToken"
                                                                                                                                },
                                                                                                                                "id": 2861,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "20414:9:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2862,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "20393:31:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2863,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "20393:52:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "parValue",
                                                                                                                    "referencedDeclaration": 8066,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "issues"
                                                                                                                                        },
                                                                                                                                        "id": 2864,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20447:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "issuer"
                                                                                                                                        },
                                                                                                                                        "id": 2865,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20454:6:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2866,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "20447:14:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2331,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "tokenContract"
                                                                                                                                },
                                                                                                                                "id": 2867,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "20462:13:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2868,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "20447:29:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2869,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "20447:38:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2870,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "20374:112:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2871,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "20344:142:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        2873
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "name": "redemptionAmount",
                                                                                                            "scope": 3005,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "uint256",
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "uint256",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "id": 2872,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "20509:7:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2873,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "20509:24:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "mulDown",
                                                                                                                    "referencedDeclaration": 8604,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8909,
                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                            "value": "FixedPoint"
                                                                                                                        },
                                                                                                                        "id": 2874,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "20536:10:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2875,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "20536:18:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2855,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "proportionPurchased"
                                                                                                                },
                                                                                                                "id": 2876,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "20555:19:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "parValue",
                                                                                                                    "referencedDeclaration": 8066,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "issues"
                                                                                                                                        },
                                                                                                                                        "id": 2877,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20576:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "issuer"
                                                                                                                                        },
                                                                                                                                        "id": 2878,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20583:6:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2879,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "20576:14:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "bondToken"
                                                                                                                                },
                                                                                                                                "id": 2880,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "20591:9:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2881,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "20576:25:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2882,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "20576:34:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2883,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "20536:75:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2884,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "20509:102:14"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "=",
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2873,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "redemptionAmount"
                                                                                                                },
                                                                                                                "id": 2885,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "20701:16:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "type": "uint256",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "mulDown",
                                                                                                                            "referencedDeclaration": 8604,
                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                                    "value": "FixedPoint"
                                                                                                                                },
                                                                                                                                "id": 2886,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "20720:10:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2887,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "20720:18:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2873,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "redemptionAmount"
                                                                                                                        },
                                                                                                                        "id": 2888,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "20739:16:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "uint256",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "divDown",
                                                                                                                                    "referencedDeclaration": 8695,
                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 8909,
                                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                                            "value": "FixedPoint"
                                                                                                                                        },
                                                                                                                                        "id": 2889,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20757:10:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2890,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "20757:18:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "sub",
                                                                                                                                            "referencedDeclaration": 10300,
                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10483,
                                                                                                                                                    "type": "type(library Math)",
                                                                                                                                                    "value": "Math"
                                                                                                                                                },
                                                                                                                                                "id": 2891,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "20818:4:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2892,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "20818:8:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 13009,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "now"
                                                                                                                                        },
                                                                                                                                        "id": 2893,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20827:3:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "timeIssuedOrSubscribed",
                                                                                                                                            "referencedDeclaration": 8072,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                    "value": "purchases"
                                                                                                                                                                },
                                                                                                                                                                "id": 2894,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "20832:9:14"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 2844,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "purchaser"
                                                                                                                                                                },
                                                                                                                                                                "id": 2895,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "20842:9:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2896,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "20832:20:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "bondToken"
                                                                                                                                                        },
                                                                                                                                                        "id": 2897,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "20853:9:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2898,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "20832:31:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2899,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "20832:54:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2900,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "20818:69:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "sub",
                                                                                                                                            "referencedDeclaration": 10300,
                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10483,
                                                                                                                                                    "type": "type(library Math)",
                                                                                                                                                    "value": "Math"
                                                                                                                                                },
                                                                                                                                                "id": 2901,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "20930:4:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2902,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "20930:8:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 13009,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "now"
                                                                                                                                        },
                                                                                                                                        "id": 2903,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "20939:3:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "timeIssuedOrSubscribed",
                                                                                                                                            "referencedDeclaration": 8072,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                    "value": "issues"
                                                                                                                                                                },
                                                                                                                                                                "id": 2904,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "20944:6:14"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 2742,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "issuer"
                                                                                                                                                                },
                                                                                                                                                                "id": 2905,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "20951:6:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2906,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "20944:14:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "bondToken"
                                                                                                                                                        },
                                                                                                                                                        "id": 2907,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "20959:9:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2908,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "20944:25:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2909,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "20944:48:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2910,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "20930:63:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2911,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "20757:237:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2912,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "20720:275:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2913,
                                                                                                        "name": "Assignment",
                                                                                                        "src": "20701:294:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2914,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "20701:294:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "falseBody": null
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "commonType": {
                                                                                                                "typeIdentifier": "t_bool",
                                                                                                                "typeString": "bool"
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "&&",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                        "typeString": "address"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "!=",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2732,
                                                                                                                            "type": "address",
                                                                                                                            "value": "viaAddress"
                                                                                                                        },
                                                                                                                        "id": 2915,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "21106:10:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "address payable",
                                                                                                                            "type_conversion": true
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                                                            "typeString": "int_const 0"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "type(address)",
                                                                                                                                    "value": "address"
                                                                                                                                },
                                                                                                                                "id": 2916,
                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                "src": "21118:7:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "307830",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "number",
                                                                                                                                    "type": "int_const 0",
                                                                                                                                    "value": "0x0"
                                                                                                                                },
                                                                                                                                "id": 2917,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "21126:3:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2918,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "21118:12:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2919,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "21106:24:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isInlineArray": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "commonType": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": ">",
                                                                                                                            "type": "bool"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2873,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "redemptionAmount"
                                                                                                                                },
                                                                                                                                "id": 2920,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21135:16:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "30",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "number",
                                                                                                                                    "type": "int_const 0",
                                                                                                                                    "value": "0"
                                                                                                                                },
                                                                                                                                "id": 2921,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "21154:1:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2922,
                                                                                                                        "name": "BinaryOperation",
                                                                                                                        "src": "21135:20:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2923,
                                                                                                                "name": "TupleExpression",
                                                                                                                "src": "21134:22:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2924,
                                                                                                        "name": "BinaryOperation",
                                                                                                        "src": "21106:50:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2873,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "redemptionAmount"
                                                                                                                                },
                                                                                                                                "id": 2925,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21238:16:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                                                    "typeString": "bytes32"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                                                                                    "typeString": "literal_string \"redemption\""
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3468,
                                                                                                                                            "type": "function (uint256,bytes32,bytes32) returns (uint256)",
                                                                                                                                            "value": "payFee"
                                                                                                                                        },
                                                                                                                                        "id": 2926,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "21257:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2873,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "redemptionAmount"
                                                                                                                                        },
                                                                                                                                        "id": 2927,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "21264:16:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2754,
                                                                                                                                            "type": "bytes32",
                                                                                                                                            "value": "bondTokenName"
                                                                                                                                        },
                                                                                                                                        "id": 2928,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "21282:13:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "hexvalue": "726564656d7074696f6e",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "subdenomination": null,
                                                                                                                                            "token": "string",
                                                                                                                                            "type": "literal_string \"redemption\"",
                                                                                                                                            "value": "redemption"
                                                                                                                                        },
                                                                                                                                        "id": 2929,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "21297:12:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2930,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "21257:53:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2931,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "21238:72:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2932,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "21238:72:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 3359,
                                                                                                                                    "type": "function (address,uint256,address)",
                                                                                                                                    "value": "send"
                                                                                                                                },
                                                                                                                                "id": 2933,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21337:4:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2732,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "viaAddress"
                                                                                                                                },
                                                                                                                                "id": 2934,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21342:10:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2873,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "redemptionAmount"
                                                                                                                                },
                                                                                                                                "id": 2935,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21354:16:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2844,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "purchaser"
                                                                                                                                },
                                                                                                                                "id": 2936,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21372:9:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2937,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "21337:45:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2938,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "21337:45:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2739,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "totalToRedeem"
                                                                                                                                },
                                                                                                                                "id": 2939,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21465:13:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "add",
                                                                                                                                            "referencedDeclaration": 10236,
                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10483,
                                                                                                                                                    "type": "type(library Math)",
                                                                                                                                                    "value": "Math"
                                                                                                                                                },
                                                                                                                                                "id": 2940,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "21481:4:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2941,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "21481:8:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2739,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "totalToRedeem"
                                                                                                                                        },
                                                                                                                                        "id": 2942,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "21490:13:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2873,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "redemptionAmount"
                                                                                                                                        },
                                                                                                                                        "id": 2943,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "21505:16:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2944,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "21481:41:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2945,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "21465:57:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2946,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "21465:57:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "reduceSupply",
                                                                                                                                    "referencedDeclaration": 8450,
                                                                                                                                    "type": "function (uint256) external"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "contract ViaToken",
                                                                                                                                            "type_conversion": true
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                            "typeString": "address"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 8499,
                                                                                                                                                    "type": "type(contract ViaToken)",
                                                                                                                                                    "value": "ViaToken"
                                                                                                                                                },
                                                                                                                                                "id": 2947,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "21609:8:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "bondToken"
                                                                                                                                                },
                                                                                                                                                "id": 2948,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "21618:9:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2949,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "21609:19:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2950,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "21609:32:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2873,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "redemptionAmount"
                                                                                                                                },
                                                                                                                                "id": 2951,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21642:16:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2952,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "21609:50:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2953,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "21609:50:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "type": "tuple()",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "reduceBalance",
                                                                                                                                    "referencedDeclaration": 8457,
                                                                                                                                    "type": "function (address,uint256) external"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "type": "contract ViaToken",
                                                                                                                                            "type_conversion": true
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                                            "typeString": "address"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 8499,
                                                                                                                                                    "type": "type(contract ViaToken)",
                                                                                                                                                    "value": "ViaToken"
                                                                                                                                                },
                                                                                                                                                "id": 2954,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "21785:8:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "bondToken"
                                                                                                                                                },
                                                                                                                                                "id": 2955,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "21794:9:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2956,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "21785:19:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2957,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "21785:33:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2844,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "purchaser"
                                                                                                                                },
                                                                                                                                "id": 2958,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21819:9:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2873,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "redemptionAmount"
                                                                                                                                },
                                                                                                                                "id": 2959,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "21830:16:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2960,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "21785:62:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2961,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "21785:62:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "member_name": "purchasedIssueAmount",
                                                                                                                                    "referencedDeclaration": 8074,
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 1355,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                            "value": "purchases"
                                                                                                                                                        },
                                                                                                                                                        "id": 2962,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "21874:9:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2844,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "purchaser"
                                                                                                                                                        },
                                                                                                                                                        "id": 2963,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "21884:9:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2965,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "21874:20:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "bondToken"
                                                                                                                                                },
                                                                                                                                                "id": 2964,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "21895:9:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2966,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "21874:31:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2967,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "21874:52:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "type": "uint256",
                                                                                                                                    "type_conversion": false
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "sub",
                                                                                                                                            "referencedDeclaration": 10300,
                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10483,
                                                                                                                                                    "type": "type(library Math)",
                                                                                                                                                    "value": "Math"
                                                                                                                                                },
                                                                                                                                                "id": 2968,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "21959:4:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2969,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "21959:8:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "member_name": "purchasedIssueAmount",
                                                                                                                                            "referencedDeclaration": 8074,
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                                    "value": "purchases"
                                                                                                                                                                },
                                                                                                                                                                "id": 2970,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "21968:9:14"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 2844,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "purchaser"
                                                                                                                                                                },
                                                                                                                                                                "id": 2971,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "21978:9:14"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 2972,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "21968:20:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "bondToken"
                                                                                                                                                        },
                                                                                                                                                        "id": 2973,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "21989:9:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 2974,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "21968:31:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2975,
                                                                                                                                        "name": "MemberAccess",
                                                                                                                                        "src": "21968:52:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2873,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "redemptionAmount"
                                                                                                                                        },
                                                                                                                                        "id": 2976,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "22022:16:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2977,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "21959:80:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2978,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "21874:165:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2979,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "21874:165:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "bool"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2735,
                                                                                                                                    "type": "bool",
                                                                                                                                    "value": "status"
                                                                                                                                },
                                                                                                                                "id": 2980,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "22066:6:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "74727565",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "bool",
                                                                                                                                    "type": "bool",
                                                                                                                                    "value": "true"
                                                                                                                                },
                                                                                                                                "id": 2981,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "22075:4:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2982,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "22066:13:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2983,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "22066:13:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2984,
                                                                                                        "name": "Block",
                                                                                                        "src": "21157:946:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 2985,
                                                                                                "name": "IfStatement",
                                                                                                "src": "21103:1000:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "falseBody": null
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "commonType": {
                                                                                                                "typeIdentifier": "t_bool",
                                                                                                                "typeString": "bool"
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "&&",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2735,
                                                                                                                    "type": "bool",
                                                                                                                    "value": "status"
                                                                                                                },
                                                                                                                "id": 2986,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22152:6:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "==",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "purchasedIssueAmount",
                                                                                                                            "referencedDeclaration": 8074,
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                    "value": "purchases"
                                                                                                                                                },
                                                                                                                                                "id": 2987,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "22162:9:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2844,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "purchaser"
                                                                                                                                                },
                                                                                                                                                "id": 2988,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "22172:9:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2989,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "22162:20:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "bondToken"
                                                                                                                                        },
                                                                                                                                        "id": 2990,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "22183:9:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 2991,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "22162:31:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 2992,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "22162:52:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "30",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "number",
                                                                                                                            "type": "int_const 0",
                                                                                                                            "value": "0"
                                                                                                                        },
                                                                                                                        "id": 2993,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "22216:1:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 2994,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "22162:55:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 2995,
                                                                                                        "name": "BinaryOperation",
                                                                                                        "src": "22152:65:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "delete",
                                                                                                                    "prefix": true,
                                                                                                                    "type": "tuple()"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isInlineArray": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": true,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 1355,
                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                    "value": "purchases"
                                                                                                                                                },
                                                                                                                                                "id": 2996,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "22352:9:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2844,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "purchaser"
                                                                                                                                                },
                                                                                                                                                "id": 2997,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "22362:9:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 2998,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "22352:20:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "bondToken"
                                                                                                                                        },
                                                                                                                                        "id": 2999,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "22373:9:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 3000,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "22352:31:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 3001,
                                                                                                                        "name": "TupleExpression",
                                                                                                                        "src": "22351:33:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3002,
                                                                                                                "name": "UnaryOperation",
                                                                                                                "src": "22345:39:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3003,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "22345:39:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3004,
                                                                                                "name": "IfStatement",
                                                                                                "src": "22149:235:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3005,
                                                                                        "name": "Block",
                                                                                        "src": "20043:2381:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3006,
                                                                                "name": "ForStatement",
                                                                                "src": "19979:2445:14"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "bool"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 1422,
                                                                                                            "type": "mapping(bytes32 => bool)",
                                                                                                            "value": "lock"
                                                                                                        },
                                                                                                        "id": 3007,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "22442:4:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "63617368726564656d7074696f6e",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"cashredemption\"",
                                                                                                            "value": "cashredemption"
                                                                                                        },
                                                                                                        "id": 3008,
                                                                                                        "name": "Literal",
                                                                                                        "src": "22447:16:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3009,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "22442:22:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "66616c7365",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "bool",
                                                                                                    "type": "bool",
                                                                                                    "value": "false"
                                                                                                },
                                                                                                "id": 3010,
                                                                                                "name": "Literal",
                                                                                                "src": "22467:5:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3011,
                                                                                        "name": "Assignment",
                                                                                        "src": "22442:30:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3012,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "22442:30:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "falseBody": null
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2735,
                                                                                            "type": "bool",
                                                                                            "value": "status"
                                                                                        },
                                                                                        "id": 3013,
                                                                                        "name": "Identifier",
                                                                                        "src": "22494:6:14"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        3015
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "name": "proportionToRedeem",
                                                                                                            "scope": 3084,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "uint256",
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "uint256",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "id": 3014,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "22573:7:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3015,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "22573:26:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "divDown",
                                                                                                                    "referencedDeclaration": 8695,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8909,
                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                            "value": "FixedPoint"
                                                                                                                        },
                                                                                                                        "id": 3016,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "22602:10:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3017,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "22602:18:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2739,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "totalToRedeem"
                                                                                                                },
                                                                                                                "id": 3018,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22621:13:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "purchasedIssueAmount",
                                                                                                                    "referencedDeclaration": 8074,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "issues"
                                                                                                                                        },
                                                                                                                                        "id": 3019,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "22636:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "issuer"
                                                                                                                                        },
                                                                                                                                        "id": 3020,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "22643:6:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 3021,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "22636:14:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "bondToken"
                                                                                                                                },
                                                                                                                                "id": 3022,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "22651:9:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 3023,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "22636:25:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3024,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "22636:46:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3025,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "22602:81:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3026,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "22573:110:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        3028
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "name": "amountToRedeem",
                                                                                                            "scope": 3084,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "uint256",
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "uint256",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "id": 3027,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "22790:7:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3028,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "22790:22:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "mulDown",
                                                                                                                    "referencedDeclaration": 8604,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8909,
                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                            "value": "FixedPoint"
                                                                                                                        },
                                                                                                                        "id": 3029,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "22815:10:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3030,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "22815:18:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "paidInAmount",
                                                                                                                    "referencedDeclaration": 8068,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                            "value": "issues"
                                                                                                                                        },
                                                                                                                                        "id": 3031,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "22834:6:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "issuer"
                                                                                                                                        },
                                                                                                                                        "id": 3032,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "22841:6:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 3033,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "22834:14:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "bondToken"
                                                                                                                                },
                                                                                                                                "id": 3034,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "22849:9:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 3035,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "22834:25:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3036,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "22834:38:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3015,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "proportionToRedeem"
                                                                                                                },
                                                                                                                "id": 3037,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "22874:18:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3038,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "22815:78:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3039,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "22790:103:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        3041
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "name": "paidInCurrency",
                                                                                                            "scope": 3084,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "bytes32",
                                                                                                            "value": null,
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "bytes32",
                                                                                                                    "type": "bytes32"
                                                                                                                },
                                                                                                                "id": 3040,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "22916:7:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3041,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "22916:22:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "paidInCurrency",
                                                                                                            "referencedDeclaration": 8070,
                                                                                                            "type": "bytes32"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                    "value": "issues"
                                                                                                                                },
                                                                                                                                "id": 3042,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "22941:6:14"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 2742,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "issuer"
                                                                                                                                },
                                                                                                                                "id": 3043,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "22948:6:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 3044,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "22941:14:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                            "type": "address",
                                                                                                                            "value": "bondToken"
                                                                                                                        },
                                                                                                                        "id": 3045,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "22956:9:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3046,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "22941:25:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3047,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "22941:40:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3048,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "22916:65:14"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "tuple()",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3359,
                                                                                                                    "type": "function (address,uint256,address)",
                                                                                                                    "value": "send"
                                                                                                                },
                                                                                                                "id": 3049,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23004:4:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2732,
                                                                                                                    "type": "address",
                                                                                                                    "value": "viaAddress"
                                                                                                                },
                                                                                                                "id": 3050,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23009:10:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3028,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "amountToRedeem"
                                                                                                                },
                                                                                                                "id": 3051,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23021:14:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2742,
                                                                                                                    "type": "address",
                                                                                                                    "value": "issuer"
                                                                                                                },
                                                                                                                "id": 3052,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23037:6:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3053,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "23004:40:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3054,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "23004:40:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "falseBody": null
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "commonType": {
                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                "typeString": "uint256"
                                                                                                            },
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "==",
                                                                                                            "type": "bool"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2824,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "p"
                                                                                                                },
                                                                                                                "id": 3055,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23070:1:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "-",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "length",
                                                                                                                            "referencedDeclaration": null,
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "counterParties",
                                                                                                                                    "referencedDeclaration": 8077,
                                                                                                                                    "type": "address[] storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 1349,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                            "value": "issues"
                                                                                                                                                        },
                                                                                                                                                        "id": 3056,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "23073:6:14"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": null,
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2742,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "issuer"
                                                                                                                                                        },
                                                                                                                                                        "id": 3057,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "23080:6:14"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 3058,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "23073:14:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "bondToken"
                                                                                                                                                },
                                                                                                                                                "id": 3059,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "23088:9:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 3060,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "23073:25:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 3061,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "23073:40:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 3062,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "23073:47:14"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "31",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "number",
                                                                                                                            "type": "int_const 1",
                                                                                                                            "value": "1"
                                                                                                                        },
                                                                                                                        "id": 3063,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "23121:1:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3064,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "23073:49:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3065,
                                                                                                        "name": "BinaryOperation",
                                                                                                        "src": "23070:52:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "delete",
                                                                                                                    "prefix": true,
                                                                                                                    "type": "tuple()"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isInlineArray": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": true,
                                                                                                                            "type": "struct ViaBond.bond storage ref"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 1349,
                                                                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                                                                    "value": "issues"
                                                                                                                                                },
                                                                                                                                                "id": 3066,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "23250:6:14"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": null,
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 2742,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "issuer"
                                                                                                                                                },
                                                                                                                                                "id": 3067,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "23257:6:14"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 3068,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "23250:14:14"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2746,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "bondToken"
                                                                                                                                        },
                                                                                                                                        "id": 3069,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "23265:9:14"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 3070,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "23250:25:14"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 3071,
                                                                                                                        "name": "TupleExpression",
                                                                                                                        "src": "23249:27:14"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 3072,
                                                                                                                "name": "UnaryOperation",
                                                                                                                "src": "23243:33:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3073,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "23243:33:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3074,
                                                                                                "name": "IfStatement",
                                                                                                "src": "23067:209:14"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "tuple()",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                                            "typeString": "bytes32"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 1388,
                                                                                                                    "type": "function (address,address,uint256,bytes32,uint256,bytes32)",
                                                                                                                    "value": "BondRedeemed"
                                                                                                                },
                                                                                                                "id": 3075,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23304:12:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2742,
                                                                                                                    "type": "address",
                                                                                                                    "value": "issuer"
                                                                                                                },
                                                                                                                "id": 3076,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23317:6:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2746,
                                                                                                                    "type": "address",
                                                                                                                    "value": "bondToken"
                                                                                                                },
                                                                                                                "id": 3077,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23325:9:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2750,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "redeemAmount"
                                                                                                                },
                                                                                                                "id": 3078,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23336:12:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2754,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "bondTokenName"
                                                                                                                },
                                                                                                                "id": 3079,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23350:13:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3028,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "amountToRedeem"
                                                                                                                },
                                                                                                                "id": 3080,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23365:14:14"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3041,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "paidInCurrency"
                                                                                                                },
                                                                                                                "id": 3081,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23381:14:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3082,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "23304:92:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3083,
                                                                                                "name": "EmitStatement",
                                                                                                "src": "23299:97:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3084,
                                                                                        "name": "Block",
                                                                                        "src": "22501:915:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3085,
                                                                                "name": "IfStatement",
                                                                                "src": "22491:925:14"
                                                                            }
                                                                        ],
                                                                        "id": 3086,
                                                                        "name": "Block",
                                                                        "src": "19193:4238:14"
                                                                    }
                                                                ],
                                                                "id": 3087,
                                                                "name": "IfStatement",
                                                                "src": "19137:4294:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "functionReturnParameters": 2335
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2735,
                                                                            "type": "bool",
                                                                            "value": "status"
                                                                        },
                                                                        "id": 3088,
                                                                        "name": "Identifier",
                                                                        "src": "23452:6:14"
                                                                    }
                                                                ],
                                                                "id": 3089,
                                                                "name": "Return",
                                                                "src": "23445:13:14"
                                                            }
                                                        ],
                                                        "id": 3090,
                                                        "name": "Block",
                                                        "src": "18830:4640:14"
                                                    }
                                                ],
                                                "id": 3091,
                                                "name": "IfStatement",
                                                "src": "18804:4666:14"
                                            }
                                        ],
                                        "id": 3092,
                                        "name": "IfStatement",
                                        "src": "13562:9908:14"
                                    }
                                ],
                                "id": 3093,
                                "name": "Block",
                                "src": "13437:10040:14"
                            }
                        ],
                        "id": 3094,
                        "name": "FunctionDefinition",
                        "src": "13311:10166:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "transferForward",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": 8091,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 3177,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3095,
                                                "name": "ElementaryTypeName",
                                                "src": "23582:7:14"
                                            }
                                        ],
                                        "id": 3096,
                                        "name": "VariableDeclaration",
                                        "src": "23582:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "receiver",
                                            "scope": 3177,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3097,
                                                "name": "ElementaryTypeName",
                                                "src": "23598:7:14"
                                            }
                                        ],
                                        "id": 3098,
                                        "name": "VariableDeclaration",
                                        "src": "23598:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokens",
                                            "scope": 3177,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3099,
                                                "name": "ElementaryTypeName",
                                                "src": "23616:7:14"
                                            }
                                        ],
                                        "id": 3100,
                                        "name": "VariableDeclaration",
                                        "src": "23616:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "forwarder",
                                            "scope": 3177,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3101,
                                                "name": "ElementaryTypeName",
                                                "src": "23632:7:14"
                                            }
                                        ],
                                        "id": 3102,
                                        "name": "VariableDeclaration",
                                        "src": "23632:17:14"
                                    }
                                ],
                                "id": 3103,
                                "name": "ParameterList",
                                "src": "23581:69:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3177,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 3104,
                                                "name": "ElementaryTypeName",
                                                "src": "23669:4:14"
                                            }
                                        ],
                                        "id": 3105,
                                        "name": "VariableDeclaration",
                                        "src": "23669:4:14"
                                    }
                                ],
                                "id": 3106,
                                "name": "ParameterList",
                                "src": "23668:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3107,
                                                        "name": "Identifier",
                                                        "src": "23725:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12542,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 3108,
                                                                "name": "Identifier",
                                                                "src": "23733:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 3109,
                                                                "name": "Literal",
                                                                "src": "23743:5:14"
                                                            }
                                                        ],
                                                        "id": 3110,
                                                        "name": "BinaryOperation",
                                                        "src": "23733:15:14"
                                                    }
                                                ],
                                                "id": 3111,
                                                "name": "FunctionCall",
                                                "src": "23725:24:14"
                                            }
                                        ],
                                        "id": 3112,
                                        "name": "ExpressionStatement",
                                        "src": "23725:24:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3113,
                                                        "name": "Identifier",
                                                        "src": "23788:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3501,
                                                                            "type": "function (address) view returns (bool)",
                                                                            "value": "amlCheck"
                                                                        },
                                                                        "id": 3114,
                                                                        "name": "Identifier",
                                                                        "src": "23796:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3096,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 3115,
                                                                        "name": "Identifier",
                                                                        "src": "23805:6:14"
                                                                    }
                                                                ],
                                                                "id": 3116,
                                                                "name": "FunctionCall",
                                                                "src": "23796:16:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 3117,
                                                                "name": "Literal",
                                                                "src": "23814:4:14"
                                                            }
                                                        ],
                                                        "id": 3118,
                                                        "name": "BinaryOperation",
                                                        "src": "23796:22:14"
                                                    }
                                                ],
                                                "id": 3119,
                                                "name": "FunctionCall",
                                                "src": "23788:31:14"
                                            }
                                        ],
                                        "id": 3120,
                                        "name": "ExpressionStatement",
                                        "src": "23788:31:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3121,
                                                        "name": "Identifier",
                                                        "src": "23830:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3501,
                                                                            "type": "function (address) view returns (bool)",
                                                                            "value": "amlCheck"
                                                                        },
                                                                        "id": 3122,
                                                                        "name": "Identifier",
                                                                        "src": "23838:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3098,
                                                                            "type": "address",
                                                                            "value": "receiver"
                                                                        },
                                                                        "id": 3123,
                                                                        "name": "Identifier",
                                                                        "src": "23847:8:14"
                                                                    }
                                                                ],
                                                                "id": 3124,
                                                                "name": "FunctionCall",
                                                                "src": "23838:18:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 3125,
                                                                "name": "Literal",
                                                                "src": "23858:4:14"
                                                            }
                                                        ],
                                                        "id": 3126,
                                                        "name": "BinaryOperation",
                                                        "src": "23838:24:14"
                                                    }
                                                ],
                                                "id": 3127,
                                                "name": "FunctionCall",
                                                "src": "23830:33:14"
                                            }
                                        ],
                                        "id": 3128,
                                        "name": "ExpressionStatement",
                                        "src": "23830:33:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "&&",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3098,
                                                                    "type": "address",
                                                                    "value": "receiver"
                                                                },
                                                                "id": 3129,
                                                                "name": "Identifier",
                                                                "src": "23953:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_Bond_$3597",
                                                                                    "typeString": "contract Bond"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)",
                                                                            "value": "address"
                                                                        },
                                                                        "id": 3130,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "23965:7:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13075,
                                                                            "type": "contract Bond",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 3131,
                                                                        "name": "Identifier",
                                                                        "src": "23973:4:14"
                                                                    }
                                                                ],
                                                                "id": 3132,
                                                                "name": "FunctionCall",
                                                                "src": "23965:13:14"
                                                            }
                                                        ],
                                                        "id": 3133,
                                                        "name": "BinaryOperation",
                                                        "src": "23953:25:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3098,
                                                                    "type": "address",
                                                                    "value": "receiver"
                                                                },
                                                                "id": 3134,
                                                                "name": "Identifier",
                                                                "src": "23982:8:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3102,
                                                                    "type": "address",
                                                                    "value": "forwarder"
                                                                },
                                                                "id": 3135,
                                                                "name": "Identifier",
                                                                "src": "23994:9:14"
                                                            }
                                                        ],
                                                        "id": 3136,
                                                        "name": "BinaryOperation",
                                                        "src": "23982:21:14"
                                                    }
                                                ],
                                                "id": 3137,
                                                "name": "BinaryOperation",
                                                "src": "23953:50:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_c335324393403d7912173b36ea8a4cce018c23e28c98da8b2f4fcdbab5b142d5",
                                                                                    "typeString": "literal_string \"TokenTransfer\""
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3094,
                                                                            "type": "function (uint256,address,bytes32,bytes32,address) returns (bool)",
                                                                            "value": "redeem"
                                                                        },
                                                                        "id": 3138,
                                                                        "name": "Identifier",
                                                                        "src": "24106:6:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3100,
                                                                            "type": "uint256",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 3139,
                                                                        "name": "Identifier",
                                                                        "src": "24113:6:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3096,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 3140,
                                                                        "name": "Identifier",
                                                                        "src": "24121:6:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1341,
                                                                            "type": "bytes32",
                                                                            "value": "bondName"
                                                                        },
                                                                        "id": 3141,
                                                                        "name": "Identifier",
                                                                        "src": "24129:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "546f6b656e5472616e73666572",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"TokenTransfer\"",
                                                                            "value": "TokenTransfer"
                                                                        },
                                                                        "id": 3142,
                                                                        "name": "Literal",
                                                                        "src": "24139:15:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3102,
                                                                            "type": "address",
                                                                            "value": "forwarder"
                                                                        },
                                                                        "id": 3143,
                                                                        "name": "Identifier",
                                                                        "src": "24156:9:14"
                                                                    }
                                                                ],
                                                                "id": 3144,
                                                                "name": "FunctionCall",
                                                                "src": "24106:60:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "functionReturnParameters": 3106
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "74727565",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "true"
                                                                        },
                                                                        "id": 3145,
                                                                        "name": "Literal",
                                                                        "src": "24192:4:14"
                                                                    }
                                                                ],
                                                                "id": 3146,
                                                                "name": "Return",
                                                                "src": "24185:11:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "functionReturnParameters": 3106
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "66616c7365",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "false"
                                                                        },
                                                                        "id": 3147,
                                                                        "name": "Literal",
                                                                        "src": "24240:5:14"
                                                                    }
                                                                ],
                                                                "id": 3148,
                                                                "name": "Return",
                                                                "src": "24233:12:14"
                                                            }
                                                        ],
                                                        "id": 3149,
                                                        "name": "IfStatement",
                                                        "src": "24103:142:14"
                                                    }
                                                ],
                                                "id": 3150,
                                                "name": "Block",
                                                "src": "24004:253:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "purchasedIssueAmount",
                                                                            "referencedDeclaration": 8074,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ViaBond.bond storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1355,
                                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                                    "value": "purchases"
                                                                                                },
                                                                                                "id": 3151,
                                                                                                "name": "Identifier",
                                                                                                "src": "24534:9:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3096,
                                                                                                    "type": "address",
                                                                                                    "value": "sender"
                                                                                                },
                                                                                                "id": 3152,
                                                                                                "name": "Identifier",
                                                                                                "src": "24544:6:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3153,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "24534:17:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3102,
                                                                                            "type": "address",
                                                                                            "value": "forwarder"
                                                                                        },
                                                                                        "id": 3154,
                                                                                        "name": "Identifier",
                                                                                        "src": "24552:9:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3155,
                                                                                "name": "IndexAccess",
                                                                                "src": "24534:28:14"
                                                                            }
                                                                        ],
                                                                        "id": 3156,
                                                                        "name": "MemberAccess",
                                                                        "src": "24534:49:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3100,
                                                                            "type": "uint256",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 3157,
                                                                        "name": "Identifier",
                                                                        "src": "24585:6:14"
                                                                    }
                                                                ],
                                                                "id": 3158,
                                                                "name": "BinaryOperation",
                                                                "src": "24534:57:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3225,
                                                                                            "type": "function (address,address,address,uint256) returns (bool)",
                                                                                            "value": "transferBondToken"
                                                                                        },
                                                                                        "id": 3159,
                                                                                        "name": "Identifier",
                                                                                        "src": "24614:17:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3102,
                                                                                            "type": "address",
                                                                                            "value": "forwarder"
                                                                                        },
                                                                                        "id": 3160,
                                                                                        "name": "Identifier",
                                                                                        "src": "24632:9:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3096,
                                                                                            "type": "address",
                                                                                            "value": "sender"
                                                                                        },
                                                                                        "id": 3161,
                                                                                        "name": "Identifier",
                                                                                        "src": "24643:6:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3098,
                                                                                            "type": "address",
                                                                                            "value": "receiver"
                                                                                        },
                                                                                        "id": 3162,
                                                                                        "name": "Identifier",
                                                                                        "src": "24651:8:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3100,
                                                                                            "type": "uint256",
                                                                                            "value": "tokens"
                                                                                        },
                                                                                        "id": 3163,
                                                                                        "name": "Identifier",
                                                                                        "src": "24661:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3164,
                                                                                "name": "FunctionCall",
                                                                                "src": "24614:54:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "functionReturnParameters": 3106
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "74727565",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "bool",
                                                                                            "type": "bool",
                                                                                            "value": "true"
                                                                                        },
                                                                                        "id": 3165,
                                                                                        "name": "Literal",
                                                                                        "src": "24698:4:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3166,
                                                                                "name": "Return",
                                                                                "src": "24691:11:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "functionReturnParameters": 3106
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "66616c7365",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "bool",
                                                                                            "type": "bool",
                                                                                            "value": "false"
                                                                                        },
                                                                                        "id": 3167,
                                                                                        "name": "Literal",
                                                                                        "src": "24754:5:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3168,
                                                                                "name": "Return",
                                                                                "src": "24747:12:14"
                                                                            }
                                                                        ],
                                                                        "id": 3169,
                                                                        "name": "IfStatement",
                                                                        "src": "24611:148:14"
                                                                    }
                                                                ],
                                                                "id": 3170,
                                                                "name": "Block",
                                                                "src": "24592:199:14"
                                                            }
                                                        ],
                                                        "id": 3171,
                                                        "name": "IfStatement",
                                                        "src": "24531:260:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 3106
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 3172,
                                                                "name": "Literal",
                                                                "src": "24812:5:14"
                                                            }
                                                        ],
                                                        "id": 3173,
                                                        "name": "Return",
                                                        "src": "24805:12:14"
                                                    }
                                                ],
                                                "id": 3174,
                                                "name": "Block",
                                                "src": "24272:557:14"
                                            }
                                        ],
                                        "id": 3175,
                                        "name": "IfStatement",
                                        "src": "23950:879:14"
                                    }
                                ],
                                "id": 3176,
                                "name": "Block",
                                "src": "23674:1162:14"
                            }
                        ],
                        "id": 3177,
                        "name": "FunctionDefinition",
                        "src": "23557:1279:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "transferBondToken",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issuedBond",
                                            "scope": 3225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3178,
                                                "name": "ElementaryTypeName",
                                                "src": "24871:7:14"
                                            }
                                        ],
                                        "id": 3179,
                                        "name": "VariableDeclaration",
                                        "src": "24871:18:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 3225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3180,
                                                "name": "ElementaryTypeName",
                                                "src": "24891:7:14"
                                            }
                                        ],
                                        "id": 3181,
                                        "name": "VariableDeclaration",
                                        "src": "24891:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "receiver",
                                            "scope": 3225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3182,
                                                "name": "ElementaryTypeName",
                                                "src": "24907:7:14"
                                            }
                                        ],
                                        "id": 3183,
                                        "name": "VariableDeclaration",
                                        "src": "24907:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokens",
                                            "scope": 3225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 3184,
                                                "name": "ElementaryTypeName",
                                                "src": "24925:4:14"
                                            }
                                        ],
                                        "id": 3185,
                                        "name": "VariableDeclaration",
                                        "src": "24925:11:14"
                                    }
                                ],
                                "id": 3186,
                                "name": "ParameterList",
                                "src": "24870:67:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 3187,
                                                "name": "ElementaryTypeName",
                                                "src": "24955:4:14"
                                            }
                                        ],
                                        "id": 3188,
                                        "name": "VariableDeclaration",
                                        "src": "24955:4:14"
                                    }
                                ],
                                "id": 3189,
                                "name": "ParameterList",
                                "src": "24954:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferToken",
                                                            "referencedDeclaration": 8445,
                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract ViaToken",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8499,
                                                                            "type": "type(contract ViaToken)",
                                                                            "value": "ViaToken"
                                                                        },
                                                                        "id": 3190,
                                                                        "name": "Identifier",
                                                                        "src": "24974:8:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3179,
                                                                            "type": "address",
                                                                            "value": "issuedBond"
                                                                        },
                                                                        "id": 3191,
                                                                        "name": "Identifier",
                                                                        "src": "24983:10:14"
                                                                    }
                                                                ],
                                                                "id": 3192,
                                                                "name": "FunctionCall",
                                                                "src": "24974:20:14"
                                                            }
                                                        ],
                                                        "id": 3193,
                                                        "name": "MemberAccess",
                                                        "src": "24974:34:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3181,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 3194,
                                                        "name": "Identifier",
                                                        "src": "25009:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3183,
                                                            "type": "address",
                                                            "value": "receiver"
                                                        },
                                                        "id": 3195,
                                                        "name": "Identifier",
                                                        "src": "25017:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3185,
                                                            "type": "uint256",
                                                            "value": "tokens"
                                                        },
                                                        "id": 3196,
                                                        "name": "Identifier",
                                                        "src": "25027:6:14"
                                                    }
                                                ],
                                                "id": 3197,
                                                "name": "FunctionCall",
                                                "src": "24974:60:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "struct ViaBond.bond storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1355,
                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                            "value": "purchases"
                                                                                        },
                                                                                        "id": 3198,
                                                                                        "name": "Identifier",
                                                                                        "src": "25050:9:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3183,
                                                                                            "type": "address",
                                                                                            "value": "receiver"
                                                                                        },
                                                                                        "id": 3199,
                                                                                        "name": "Identifier",
                                                                                        "src": "25060:8:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3201,
                                                                                "name": "IndexAccess",
                                                                                "src": "25050:19:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3179,
                                                                                    "type": "address",
                                                                                    "value": "issuedBond"
                                                                                },
                                                                                "id": 3200,
                                                                                "name": "Identifier",
                                                                                "src": "25070:10:14"
                                                                            }
                                                                        ],
                                                                        "id": 3202,
                                                                        "name": "IndexAccess",
                                                                        "src": "25050:31:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct ViaBond.bond storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1355,
                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                            "value": "purchases"
                                                                                        },
                                                                                        "id": 3203,
                                                                                        "name": "Identifier",
                                                                                        "src": "25084:9:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3181,
                                                                                            "type": "address",
                                                                                            "value": "sender"
                                                                                        },
                                                                                        "id": 3204,
                                                                                        "name": "Identifier",
                                                                                        "src": "25094:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3205,
                                                                                "name": "IndexAccess",
                                                                                "src": "25084:17:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3179,
                                                                                    "type": "address",
                                                                                    "value": "issuedBond"
                                                                                },
                                                                                "id": 3206,
                                                                                "name": "Identifier",
                                                                                "src": "25102:10:14"
                                                                            }
                                                                        ],
                                                                        "id": 3207,
                                                                        "name": "IndexAccess",
                                                                        "src": "25084:29:14"
                                                                    }
                                                                ],
                                                                "id": 3208,
                                                                "name": "Assignment",
                                                                "src": "25050:63:14"
                                                            }
                                                        ],
                                                        "id": 3209,
                                                        "name": "ExpressionStatement",
                                                        "src": "25050:63:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "delete",
                                                                    "prefix": true,
                                                                    "type": "tuple()"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "struct ViaBond.bond storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1355,
                                                                                            "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                            "value": "purchases"
                                                                                        },
                                                                                        "id": 3210,
                                                                                        "name": "Identifier",
                                                                                        "src": "25135:9:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3181,
                                                                                            "type": "address",
                                                                                            "value": "sender"
                                                                                        },
                                                                                        "id": 3211,
                                                                                        "name": "Identifier",
                                                                                        "src": "25145:6:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3212,
                                                                                "name": "IndexAccess",
                                                                                "src": "25135:17:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3179,
                                                                                    "type": "address",
                                                                                    "value": "issuedBond"
                                                                                },
                                                                                "id": 3213,
                                                                                "name": "Identifier",
                                                                                "src": "25153:10:14"
                                                                            }
                                                                        ],
                                                                        "id": 3214,
                                                                        "name": "IndexAccess",
                                                                        "src": "25135:29:14"
                                                                    }
                                                                ],
                                                                "id": 3215,
                                                                "name": "UnaryOperation",
                                                                "src": "25128:36:14"
                                                            }
                                                        ],
                                                        "id": 3216,
                                                        "name": "ExpressionStatement",
                                                        "src": "25128:36:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 3189
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 3217,
                                                                "name": "Literal",
                                                                "src": "25186:4:14"
                                                            }
                                                        ],
                                                        "id": 3218,
                                                        "name": "Return",
                                                        "src": "25179:11:14"
                                                    }
                                                ],
                                                "id": 3219,
                                                "name": "Block",
                                                "src": "25035:167:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 3189
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 3220,
                                                                "name": "Literal",
                                                                "src": "25238:5:14"
                                                            }
                                                        ],
                                                        "id": 3221,
                                                        "name": "Return",
                                                        "src": "25231:12:14"
                                                    }
                                                ],
                                                "id": 3222,
                                                "name": "Block",
                                                "src": "25216:39:14"
                                            }
                                        ],
                                        "id": 3223,
                                        "name": "IfStatement",
                                        "src": "24971:284:14"
                                    }
                                ],
                                "id": 3224,
                                "name": "Block",
                                "src": "24960:302:14"
                            }
                        ],
                        "id": 3225,
                        "name": "FunctionDefinition",
                        "src": "24844:418:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getBonds",
                            "scope": 3597,
                            "stateMutability": "view",
                            "superFunction": 8136,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3226,
                                "name": "ParameterList",
                                "src": "25287:2:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3234,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 3227,
                                                        "name": "ElementaryTypeName",
                                                        "src": "25312:7:14"
                                                    }
                                                ],
                                                "id": 3228,
                                                "name": "ArrayTypeName",
                                                "src": "25312:9:14"
                                            }
                                        ],
                                        "id": 3229,
                                        "name": "VariableDeclaration",
                                        "src": "25312:16:14"
                                    }
                                ],
                                "id": 3230,
                                "name": "ParameterList",
                                "src": "25311:18:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 3230
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 1358,
                                                    "type": "address[] storage ref",
                                                    "value": "bondsIssued"
                                                },
                                                "id": 3231,
                                                "name": "Identifier",
                                                "src": "25347:11:14"
                                            }
                                        ],
                                        "id": 3232,
                                        "name": "Return",
                                        "src": "25340:18:14"
                                    }
                                ],
                                "id": 3233,
                                "name": "Block",
                                "src": "25329:37:14"
                            }
                        ],
                        "id": 3234,
                        "name": "FunctionDefinition",
                        "src": "25270:96:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getBondIssues",
                            "scope": 3597,
                            "stateMutability": "view",
                            "superFunction": 8153,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issuer",
                                            "scope": 3284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3235,
                                                "name": "ElementaryTypeName",
                                                "src": "25397:7:14"
                                            }
                                        ],
                                        "id": 3236,
                                        "name": "VariableDeclaration",
                                        "src": "25397:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "bondToken",
                                            "scope": 3284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3237,
                                                "name": "ElementaryTypeName",
                                                "src": "25413:7:14"
                                            }
                                        ],
                                        "id": 3238,
                                        "name": "VariableDeclaration",
                                        "src": "25413:17:14"
                                    }
                                ],
                                "id": 3239,
                                "name": "ParameterList",
                                "src": "25396:35:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3240,
                                                "name": "ElementaryTypeName",
                                                "src": "25454:7:14"
                                            }
                                        ],
                                        "id": 3241,
                                        "name": "VariableDeclaration",
                                        "src": "25454:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3242,
                                                "name": "ElementaryTypeName",
                                                "src": "25463:7:14"
                                            }
                                        ],
                                        "id": 3243,
                                        "name": "VariableDeclaration",
                                        "src": "25463:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3244,
                                                "name": "ElementaryTypeName",
                                                "src": "25472:7:14"
                                            }
                                        ],
                                        "id": 3245,
                                        "name": "VariableDeclaration",
                                        "src": "25472:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3246,
                                                "name": "ElementaryTypeName",
                                                "src": "25481:7:14"
                                            }
                                        ],
                                        "id": 3247,
                                        "name": "VariableDeclaration",
                                        "src": "25481:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3284,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3248,
                                                "name": "ElementaryTypeName",
                                                "src": "25490:7:14"
                                            }
                                        ],
                                        "id": 3249,
                                        "name": "VariableDeclaration",
                                        "src": "25490:7:14"
                                    }
                                ],
                                "id": 3250,
                                "name": "ParameterList",
                                "src": "25453:45:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 3250
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "tuple(uint256,uint256,uint256,bytes32,uint256)"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "parValue",
                                                            "referencedDeclaration": 8066,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3251,
                                                                                "name": "Identifier",
                                                                                "src": "25517:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3236,
                                                                                    "type": "address",
                                                                                    "value": "issuer"
                                                                                },
                                                                                "id": 3252,
                                                                                "name": "Identifier",
                                                                                "src": "25524:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 3253,
                                                                        "name": "IndexAccess",
                                                                        "src": "25517:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3238,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3254,
                                                                        "name": "Identifier",
                                                                        "src": "25532:9:14"
                                                                    }
                                                                ],
                                                                "id": 3255,
                                                                "name": "IndexAccess",
                                                                "src": "25517:25:14"
                                                            }
                                                        ],
                                                        "id": 3256,
                                                        "name": "MemberAccess",
                                                        "src": "25517:34:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "purchasedIssueAmount",
                                                            "referencedDeclaration": 8074,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3257,
                                                                                "name": "Identifier",
                                                                                "src": "25570:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3236,
                                                                                    "type": "address",
                                                                                    "value": "issuer"
                                                                                },
                                                                                "id": 3258,
                                                                                "name": "Identifier",
                                                                                "src": "25577:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 3259,
                                                                        "name": "IndexAccess",
                                                                        "src": "25570:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3238,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3260,
                                                                        "name": "Identifier",
                                                                        "src": "25585:9:14"
                                                                    }
                                                                ],
                                                                "id": 3261,
                                                                "name": "IndexAccess",
                                                                "src": "25570:25:14"
                                                            }
                                                        ],
                                                        "id": 3262,
                                                        "name": "MemberAccess",
                                                        "src": "25570:46:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "paidInAmount",
                                                            "referencedDeclaration": 8068,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3263,
                                                                                "name": "Identifier",
                                                                                "src": "25635:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3236,
                                                                                    "type": "address",
                                                                                    "value": "issuer"
                                                                                },
                                                                                "id": 3264,
                                                                                "name": "Identifier",
                                                                                "src": "25642:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 3265,
                                                                        "name": "IndexAccess",
                                                                        "src": "25635:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3238,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3266,
                                                                        "name": "Identifier",
                                                                        "src": "25650:9:14"
                                                                    }
                                                                ],
                                                                "id": 3267,
                                                                "name": "IndexAccess",
                                                                "src": "25635:25:14"
                                                            }
                                                        ],
                                                        "id": 3268,
                                                        "name": "MemberAccess",
                                                        "src": "25635:38:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "paidInCurrency",
                                                            "referencedDeclaration": 8070,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3269,
                                                                                "name": "Identifier",
                                                                                "src": "25692:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3236,
                                                                                    "type": "address",
                                                                                    "value": "issuer"
                                                                                },
                                                                                "id": 3270,
                                                                                "name": "Identifier",
                                                                                "src": "25699:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 3271,
                                                                        "name": "IndexAccess",
                                                                        "src": "25692:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3238,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3272,
                                                                        "name": "Identifier",
                                                                        "src": "25707:9:14"
                                                                    }
                                                                ],
                                                                "id": 3273,
                                                                "name": "IndexAccess",
                                                                "src": "25692:25:14"
                                                            }
                                                        ],
                                                        "id": 3274,
                                                        "name": "MemberAccess",
                                                        "src": "25692:40:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timeIssuedOrSubscribed",
                                                            "referencedDeclaration": 8072,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3275,
                                                                                "name": "Identifier",
                                                                                "src": "25751:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3236,
                                                                                    "type": "address",
                                                                                    "value": "issuer"
                                                                                },
                                                                                "id": 3276,
                                                                                "name": "Identifier",
                                                                                "src": "25758:6:14"
                                                                            }
                                                                        ],
                                                                        "id": 3277,
                                                                        "name": "IndexAccess",
                                                                        "src": "25751:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3238,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3278,
                                                                        "name": "Identifier",
                                                                        "src": "25766:9:14"
                                                                    }
                                                                ],
                                                                "id": 3279,
                                                                "name": "IndexAccess",
                                                                "src": "25751:25:14"
                                                            }
                                                        ],
                                                        "id": 3280,
                                                        "name": "MemberAccess",
                                                        "src": "25751:48:14"
                                                    }
                                                ],
                                                "id": 3281,
                                                "name": "TupleExpression",
                                                "src": "25516:284:14"
                                            }
                                        ],
                                        "id": 3282,
                                        "name": "Return",
                                        "src": "25509:291:14"
                                    }
                                ],
                                "id": 3283,
                                "name": "Block",
                                "src": "25498:310:14"
                            }
                        ],
                        "id": 3284,
                        "name": "FunctionDefinition",
                        "src": "25374:434:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getBondPurchases",
                            "scope": 3597,
                            "stateMutability": "view",
                            "superFunction": 8168,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "purchaser",
                                            "scope": 3326,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3285,
                                                "name": "ElementaryTypeName",
                                                "src": "25842:7:14"
                                            }
                                        ],
                                        "id": 3286,
                                        "name": "VariableDeclaration",
                                        "src": "25842:17:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "bondToken",
                                            "scope": 3326,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3287,
                                                "name": "ElementaryTypeName",
                                                "src": "25861:7:14"
                                            }
                                        ],
                                        "id": 3288,
                                        "name": "VariableDeclaration",
                                        "src": "25861:17:14"
                                    }
                                ],
                                "id": 3289,
                                "name": "ParameterList",
                                "src": "25841:38:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3326,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3290,
                                                "name": "ElementaryTypeName",
                                                "src": "25902:7:14"
                                            }
                                        ],
                                        "id": 3291,
                                        "name": "VariableDeclaration",
                                        "src": "25902:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3326,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3292,
                                                "name": "ElementaryTypeName",
                                                "src": "25911:7:14"
                                            }
                                        ],
                                        "id": 3293,
                                        "name": "VariableDeclaration",
                                        "src": "25911:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3326,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3294,
                                                "name": "ElementaryTypeName",
                                                "src": "25920:7:14"
                                            }
                                        ],
                                        "id": 3295,
                                        "name": "VariableDeclaration",
                                        "src": "25920:7:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3326,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3296,
                                                "name": "ElementaryTypeName",
                                                "src": "25929:7:14"
                                            }
                                        ],
                                        "id": 3297,
                                        "name": "VariableDeclaration",
                                        "src": "25929:7:14"
                                    }
                                ],
                                "id": 3298,
                                "name": "ParameterList",
                                "src": "25901:36:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 3298
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "tuple(uint256,uint256,bytes32,uint256)"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "purchasedIssueAmount",
                                                            "referencedDeclaration": 8074,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3299,
                                                                                "name": "Identifier",
                                                                                "src": "25956:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3286,
                                                                                    "type": "address",
                                                                                    "value": "purchaser"
                                                                                },
                                                                                "id": 3300,
                                                                                "name": "Identifier",
                                                                                "src": "25963:9:14"
                                                                            }
                                                                        ],
                                                                        "id": 3301,
                                                                        "name": "IndexAccess",
                                                                        "src": "25956:17:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3288,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3302,
                                                                        "name": "Identifier",
                                                                        "src": "25974:9:14"
                                                                    }
                                                                ],
                                                                "id": 3303,
                                                                "name": "IndexAccess",
                                                                "src": "25956:28:14"
                                                            }
                                                        ],
                                                        "id": 3304,
                                                        "name": "MemberAccess",
                                                        "src": "25956:49:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "paidInAmount",
                                                            "referencedDeclaration": 8068,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3305,
                                                                                "name": "Identifier",
                                                                                "src": "26024:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3286,
                                                                                    "type": "address",
                                                                                    "value": "purchaser"
                                                                                },
                                                                                "id": 3306,
                                                                                "name": "Identifier",
                                                                                "src": "26031:9:14"
                                                                            }
                                                                        ],
                                                                        "id": 3307,
                                                                        "name": "IndexAccess",
                                                                        "src": "26024:17:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3288,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3308,
                                                                        "name": "Identifier",
                                                                        "src": "26042:9:14"
                                                                    }
                                                                ],
                                                                "id": 3309,
                                                                "name": "IndexAccess",
                                                                "src": "26024:28:14"
                                                            }
                                                        ],
                                                        "id": 3310,
                                                        "name": "MemberAccess",
                                                        "src": "26024:41:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "paidInCurrency",
                                                            "referencedDeclaration": 8070,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3311,
                                                                                "name": "Identifier",
                                                                                "src": "26084:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3286,
                                                                                    "type": "address",
                                                                                    "value": "purchaser"
                                                                                },
                                                                                "id": 3312,
                                                                                "name": "Identifier",
                                                                                "src": "26091:9:14"
                                                                            }
                                                                        ],
                                                                        "id": 3313,
                                                                        "name": "IndexAccess",
                                                                        "src": "26084:17:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3288,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3314,
                                                                        "name": "Identifier",
                                                                        "src": "26102:9:14"
                                                                    }
                                                                ],
                                                                "id": 3315,
                                                                "name": "IndexAccess",
                                                                "src": "26084:28:14"
                                                            }
                                                        ],
                                                        "id": 3316,
                                                        "name": "MemberAccess",
                                                        "src": "26084:43:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timeIssuedOrSubscribed",
                                                            "referencedDeclaration": 8072,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ViaBond.bond storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct ViaBond.bond storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1349,
                                                                                    "type": "mapping(address => mapping(address => struct ViaBond.bond storage ref))",
                                                                                    "value": "issues"
                                                                                },
                                                                                "id": 3317,
                                                                                "name": "Identifier",
                                                                                "src": "26146:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3286,
                                                                                    "type": "address",
                                                                                    "value": "purchaser"
                                                                                },
                                                                                "id": 3318,
                                                                                "name": "Identifier",
                                                                                "src": "26153:9:14"
                                                                            }
                                                                        ],
                                                                        "id": 3319,
                                                                        "name": "IndexAccess",
                                                                        "src": "26146:17:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3288,
                                                                            "type": "address",
                                                                            "value": "bondToken"
                                                                        },
                                                                        "id": 3320,
                                                                        "name": "Identifier",
                                                                        "src": "26164:9:14"
                                                                    }
                                                                ],
                                                                "id": 3321,
                                                                "name": "IndexAccess",
                                                                "src": "26146:28:14"
                                                            }
                                                        ],
                                                        "id": 3322,
                                                        "name": "MemberAccess",
                                                        "src": "26146:51:14"
                                                    }
                                                ],
                                                "id": 3323,
                                                "name": "TupleExpression",
                                                "src": "25955:243:14"
                                            }
                                        ],
                                        "id": 3324,
                                        "name": "Return",
                                        "src": "25948:250:14"
                                    }
                                ],
                                "id": 3325,
                                "name": "Block",
                                "src": "25937:269:14"
                            }
                        ],
                        "id": 3326,
                        "name": "FunctionDefinition",
                        "src": "25816:390:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "send",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "cash",
                                            "scope": 3359,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3327,
                                                "name": "ElementaryTypeName",
                                                "src": "26228:7:14"
                                            }
                                        ],
                                        "id": 3328,
                                        "name": "VariableDeclaration",
                                        "src": "26228:12:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 3359,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3329,
                                                "name": "ElementaryTypeName",
                                                "src": "26242:7:14"
                                            }
                                        ],
                                        "id": 3330,
                                        "name": "VariableDeclaration",
                                        "src": "26242:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "payee",
                                            "scope": 3359,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3331,
                                                "name": "ElementaryTypeName",
                                                "src": "26258:7:14"
                                            }
                                        ],
                                        "id": 3332,
                                        "name": "VariableDeclaration",
                                        "src": "26258:13:14"
                                    }
                                ],
                                "id": 3333,
                                "name": "ParameterList",
                                "src": "26227:45:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3334,
                                "name": "ParameterList",
                                "src": "26281:0:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bytes32",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getType",
                                                                    "referencedDeclaration": 8240,
                                                                    "type": "function (address) view external returns (bytes32)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 1333,
                                                                            "type": "contract ViaFactory",
                                                                            "value": "factory"
                                                                        },
                                                                        "id": 3335,
                                                                        "name": "Identifier",
                                                                        "src": "26295:7:14"
                                                                    }
                                                                ],
                                                                "id": 3336,
                                                                "name": "MemberAccess",
                                                                "src": "26295:15:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3328,
                                                                    "type": "address",
                                                                    "value": "cash"
                                                                },
                                                                "id": 3337,
                                                                "name": "Identifier",
                                                                "src": "26311:4:14"
                                                            }
                                                        ],
                                                        "id": 3338,
                                                        "name": "FunctionCall",
                                                        "src": "26295:21:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "56696143617368",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"ViaCash\"",
                                                            "value": "ViaCash"
                                                        },
                                                        "id": 3339,
                                                        "name": "Literal",
                                                        "src": "26320:9:14"
                                                    }
                                                ],
                                                "id": 3340,
                                                "name": "BinaryOperation",
                                                "src": "26295:34:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "requestDeductFromBalance",
                                                                    "referencedDeclaration": 8189,
                                                                    "type": "function (uint256,address) external returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "contract ViaCash",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8212,
                                                                                    "type": "type(contract ViaCash)",
                                                                                    "value": "ViaCash"
                                                                                },
                                                                                "id": 3341,
                                                                                "name": "Identifier",
                                                                                "src": "26344:7:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3328,
                                                                                    "type": "address",
                                                                                    "value": "cash"
                                                                                },
                                                                                "id": 3342,
                                                                                "name": "Identifier",
                                                                                "src": "26352:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 3343,
                                                                        "name": "FunctionCall",
                                                                        "src": "26344:13:14"
                                                                    }
                                                                ],
                                                                "id": 3344,
                                                                "name": "MemberAccess",
                                                                "src": "26344:38:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3330,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 3345,
                                                                "name": "Identifier",
                                                                "src": "26383:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3332,
                                                                    "type": "address",
                                                                    "value": "payee"
                                                                },
                                                                "id": 3346,
                                                                "name": "Identifier",
                                                                "src": "26391:5:14"
                                                            }
                                                        ],
                                                        "id": 3347,
                                                        "name": "FunctionCall",
                                                        "src": "26344:53:14"
                                                    }
                                                ],
                                                "id": 3348,
                                                "name": "ExpressionStatement",
                                                "src": "26344:53:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transfer",
                                                                    "referencedDeclaration": 363,
                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 409,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 3349,
                                                                                "name": "Identifier",
                                                                                "src": "26426:6:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3328,
                                                                                    "type": "address",
                                                                                    "value": "cash"
                                                                                },
                                                                                "id": 3350,
                                                                                "name": "Identifier",
                                                                                "src": "26433:4:14"
                                                                            }
                                                                        ],
                                                                        "id": 3351,
                                                                        "name": "FunctionCall",
                                                                        "src": "26426:12:14"
                                                                    }
                                                                ],
                                                                "id": 3352,
                                                                "name": "MemberAccess",
                                                                "src": "26426:21:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3332,
                                                                    "type": "address",
                                                                    "value": "payee"
                                                                },
                                                                "id": 3353,
                                                                "name": "Identifier",
                                                                "src": "26448:5:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3330,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 3354,
                                                                "name": "Identifier",
                                                                "src": "26455:6:14"
                                                            }
                                                        ],
                                                        "id": 3355,
                                                        "name": "FunctionCall",
                                                        "src": "26426:36:14"
                                                    }
                                                ],
                                                "id": 3356,
                                                "name": "ExpressionStatement",
                                                "src": "26426:36:14"
                                            }
                                        ],
                                        "id": 3357,
                                        "name": "IfStatement",
                                        "src": "26292:170:14"
                                    }
                                ],
                                "id": 3358,
                                "name": "Block",
                                "src": "26281:189:14"
                            }
                        ],
                        "id": 3359,
                        "name": "FunctionDefinition",
                        "src": "26214:256:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "payFee",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "value",
                                            "scope": 3468,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3360,
                                                "name": "ElementaryTypeName",
                                                "src": "26494:7:14"
                                            }
                                        ],
                                        "id": 3361,
                                        "name": "VariableDeclaration",
                                        "src": "26494:13:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 3468,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3362,
                                                "name": "ElementaryTypeName",
                                                "src": "26509:7:14"
                                            }
                                        ],
                                        "id": 3363,
                                        "name": "VariableDeclaration",
                                        "src": "26509:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "action",
                                            "scope": 3468,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 3364,
                                                "name": "ElementaryTypeName",
                                                "src": "26527:7:14"
                                            }
                                        ],
                                        "id": 3365,
                                        "name": "VariableDeclaration",
                                        "src": "26527:14:14"
                                    }
                                ],
                                "id": 3366,
                                "name": "ParameterList",
                                "src": "26493:49:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3468,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3367,
                                                "name": "ElementaryTypeName",
                                                "src": "26560:7:14"
                                            }
                                        ],
                                        "id": 3368,
                                        "name": "VariableDeclaration",
                                        "src": "26560:7:14"
                                    }
                                ],
                                "id": 3369,
                                "name": "ParameterList",
                                "src": "26559:9:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                3371
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "fees",
                                                    "scope": 3467,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 3370,
                                                        "name": "ElementaryTypeName",
                                                        "src": "26579:7:14"
                                                    }
                                                ],
                                                "id": 3371,
                                                "name": "VariableDeclaration",
                                                "src": "26579:12:14"
                                            }
                                        ],
                                        "id": 3372,
                                        "name": "VariableDeclarationStatement",
                                        "src": "26579:12:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                3374
                                            ],
                                            "initialValue": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "returnValue",
                                                    "scope": 3467,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 3373,
                                                        "name": "ElementaryTypeName",
                                                        "src": "26602:7:14"
                                                    }
                                                ],
                                                "id": 3374,
                                                "name": "VariableDeclaration",
                                                "src": "26602:19:14"
                                            }
                                        ],
                                        "id": 3375,
                                        "name": "VariableDeclarationStatement",
                                        "src": "26602:19:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3365,
                                                            "type": "bytes32",
                                                            "value": "action"
                                                        },
                                                        "id": 3376,
                                                        "name": "Identifier",
                                                        "src": "26635:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "69737375696e67",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"issuing\"",
                                                            "value": "issuing"
                                                        },
                                                        "id": 3377,
                                                        "name": "Literal",
                                                        "src": "26643:9:14"
                                                    }
                                                ],
                                                "id": 3378,
                                                "name": "BinaryOperation",
                                                "src": "26635:17:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3371,
                                                                    "type": "uint256",
                                                                    "value": "fees"
                                                                },
                                                                "id": 3379,
                                                                "name": "Identifier",
                                                                "src": "26667:4:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_fe2717aad5755f7dec032c6177c0d8d1b95a78ce0f26cacb98283972ec0e168a",
                                                                                    "typeString": "literal_string \"issuing\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getFee",
                                                                            "referencedDeclaration": 8051,
                                                                            "type": "function (bytes32) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1335,
                                                                                    "type": "contract VerifiedRates",
                                                                                    "value": "rates"
                                                                                },
                                                                                "id": 3380,
                                                                                "name": "Identifier",
                                                                                "src": "26674:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 3381,
                                                                        "name": "MemberAccess",
                                                                        "src": "26674:12:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "69737375696e67",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"issuing\"",
                                                                            "value": "issuing"
                                                                        },
                                                                        "id": 3382,
                                                                        "name": "Literal",
                                                                        "src": "26687:9:14"
                                                                    }
                                                                ],
                                                                "id": 3383,
                                                                "name": "FunctionCall",
                                                                "src": "26674:23:14"
                                                            }
                                                        ],
                                                        "id": 3384,
                                                        "name": "Assignment",
                                                        "src": "26667:30:14"
                                                    }
                                                ],
                                                "id": 3385,
                                                "name": "ExpressionStatement",
                                                "src": "26667:30:14"
                                            },
                                            {
                                                "attributes": {
                                                    "falseBody": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3365,
                                                                    "type": "bytes32",
                                                                    "value": "action"
                                                                },
                                                                "id": 3386,
                                                                "name": "Identifier",
                                                                "src": "26716:6:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "726564656d7074696f6e",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"redemption\"",
                                                                    "value": "redemption"
                                                                },
                                                                "id": 3387,
                                                                "name": "Literal",
                                                                "src": "26724:12:14"
                                                            }
                                                        ],
                                                        "id": 3388,
                                                        "name": "BinaryOperation",
                                                        "src": "26716:20:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3371,
                                                                            "type": "uint256",
                                                                            "value": "fees"
                                                                        },
                                                                        "id": 3389,
                                                                        "name": "Identifier",
                                                                        "src": "26751:4:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_stringliteral_847ba63e6bbb3e653c37db9bd3c246a577160e62eadcd79dc7eca0d96665213b",
                                                                                            "typeString": "literal_string \"redemption\""
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getFee",
                                                                                    "referencedDeclaration": 8051,
                                                                                    "type": "function (bytes32) view external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1335,
                                                                                            "type": "contract VerifiedRates",
                                                                                            "value": "rates"
                                                                                        },
                                                                                        "id": 3390,
                                                                                        "name": "Identifier",
                                                                                        "src": "26758:5:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3391,
                                                                                "name": "MemberAccess",
                                                                                "src": "26758:12:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "726564656d7074696f6e",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"redemption\"",
                                                                                    "value": "redemption"
                                                                                },
                                                                                "id": 3392,
                                                                                "name": "Literal",
                                                                                "src": "26771:12:14"
                                                                            }
                                                                        ],
                                                                        "id": 3393,
                                                                        "name": "FunctionCall",
                                                                        "src": "26758:26:14"
                                                                    }
                                                                ],
                                                                "id": 3394,
                                                                "name": "Assignment",
                                                                "src": "26751:33:14"
                                                            }
                                                        ],
                                                        "id": 3395,
                                                        "name": "ExpressionStatement",
                                                        "src": "26751:33:14"
                                                    }
                                                ],
                                                "id": 3396,
                                                "name": "IfStatement",
                                                "src": "26713:71:14"
                                            }
                                        ],
                                        "id": 3397,
                                        "name": "IfStatement",
                                        "src": "26632:152:14"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": ">",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3371,
                                                            "type": "uint256",
                                                            "value": "fees"
                                                        },
                                                        "id": 3398,
                                                        "name": "Identifier",
                                                        "src": "26798:4:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 3399,
                                                        "name": "Literal",
                                                        "src": "26805:1:14"
                                                    }
                                                ],
                                                "id": 3400,
                                                "name": "BinaryOperation",
                                                "src": "26798:8:14"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                3402
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "feeTo",
                                                                    "scope": 3463,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 3401,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "26822:7:14"
                                                                    }
                                                                ],
                                                                "id": 3402,
                                                                "name": "VariableDeclaration",
                                                                "src": "26822:13:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        null
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getCustodian",
                                                                            "referencedDeclaration": 8029,
                                                                            "type": "function () view external returns (address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1335,
                                                                                    "type": "contract VerifiedRates",
                                                                                    "value": "rates"
                                                                                },
                                                                                "id": 3403,
                                                                                "name": "Identifier",
                                                                                "src": "26838:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 3404,
                                                                        "name": "MemberAccess",
                                                                        "src": "26838:18:14"
                                                                    }
                                                                ],
                                                                "id": 3405,
                                                                "name": "FunctionCall",
                                                                "src": "26838:20:14"
                                                            }
                                                        ],
                                                        "id": 3406,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "26822:36:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                3408
                                                            ],
                                                            "initialValue": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "cashContract",
                                                                    "scope": 3463,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 3407,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "26873:7:14"
                                                                    }
                                                                ],
                                                                "id": 3408,
                                                                "name": "VariableDeclaration",
                                                                "src": "26873:20:14"
                                                            }
                                                        ],
                                                        "id": 3409,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "26873:20:14"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "checkSupportForToken",
                                                                            "referencedDeclaration": 8394,
                                                                            "type": "function (bytes32) view external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 1333,
                                                                                    "type": "contract ViaFactory",
                                                                                    "value": "factory"
                                                                                },
                                                                                "id": 3410,
                                                                                "name": "Identifier",
                                                                                "src": "26911:7:14"
                                                                            }
                                                                        ],
                                                                        "id": 3411,
                                                                        "name": "MemberAccess",
                                                                        "src": "26911:28:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3363,
                                                                            "type": "bytes32",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 3412,
                                                                        "name": "Identifier",
                                                                        "src": "26940:8:14"
                                                                    }
                                                                ],
                                                                "id": 3413,
                                                                "name": "FunctionCall",
                                                                "src": "26911:38:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3408,
                                                                                    "type": "address",
                                                                                    "value": "cashContract"
                                                                                },
                                                                                "id": 3414,
                                                                                "name": "Identifier",
                                                                                "src": "26968:12:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "getCurrencyToken",
                                                                                            "referencedDeclaration": 8401,
                                                                                            "type": "function (bytes32) view external returns (address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1333,
                                                                                                    "type": "contract ViaFactory",
                                                                                                    "value": "factory"
                                                                                                },
                                                                                                "id": 3415,
                                                                                                "name": "Identifier",
                                                                                                "src": "26983:7:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3416,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "26983:24:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3363,
                                                                                            "type": "bytes32",
                                                                                            "value": "currency"
                                                                                        },
                                                                                        "id": 3417,
                                                                                        "name": "Identifier",
                                                                                        "src": "27008:8:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3418,
                                                                                "name": "FunctionCall",
                                                                                "src": "26983:34:14"
                                                                            }
                                                                        ],
                                                                        "id": 3419,
                                                                        "name": "Assignment",
                                                                        "src": "26968:49:14"
                                                                    }
                                                                ],
                                                                "id": 3420,
                                                                "name": "ExpressionStatement",
                                                                "src": "26968:49:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3408,
                                                                                    "type": "address",
                                                                                    "value": "cashContract"
                                                                                },
                                                                                "id": 3421,
                                                                                "name": "Identifier",
                                                                                "src": "27055:12:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                    "typeString": "literal_string \"ViaCash\""
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "getTokenByNameType",
                                                                                            "referencedDeclaration": 8276,
                                                                                            "type": "function (bytes32,bytes32) view external returns (address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 1333,
                                                                                                    "type": "contract ViaFactory",
                                                                                                    "value": "factory"
                                                                                                },
                                                                                                "id": 3422,
                                                                                                "name": "Identifier",
                                                                                                "src": "27070:7:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3423,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "27070:26:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3363,
                                                                                            "type": "bytes32",
                                                                                            "value": "currency"
                                                                                        },
                                                                                        "id": 3424,
                                                                                        "name": "Identifier",
                                                                                        "src": "27097:8:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "56696143617368",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "string",
                                                                                            "type": "literal_string \"ViaCash\"",
                                                                                            "value": "ViaCash"
                                                                                        },
                                                                                        "id": 3425,
                                                                                        "name": "Literal",
                                                                                        "src": "27107:9:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3426,
                                                                                "name": "FunctionCall",
                                                                                "src": "27070:47:14"
                                                                            }
                                                                        ],
                                                                        "id": 3427,
                                                                        "name": "Assignment",
                                                                        "src": "27055:62:14"
                                                                    }
                                                                ],
                                                                "id": 3428,
                                                                "name": "ExpressionStatement",
                                                                "src": "27055:62:14"
                                                            }
                                                        ],
                                                        "id": 3429,
                                                        "name": "IfStatement",
                                                        "src": "26908:209:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "!=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3402,
                                                                            "type": "address",
                                                                            "value": "feeTo"
                                                                        },
                                                                        "id": 3430,
                                                                        "name": "Identifier",
                                                                        "src": "27135:5:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                            "typeString": "int_const 0"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 3431,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "27142:7:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "307830",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 0",
                                                                                    "value": "0x0"
                                                                                },
                                                                                "id": 3432,
                                                                                "name": "Literal",
                                                                                "src": "27150:3:14"
                                                                            }
                                                                        ],
                                                                        "id": 3433,
                                                                        "name": "FunctionCall",
                                                                        "src": "27142:12:14"
                                                                    }
                                                                ],
                                                                "id": 3434,
                                                                "name": "BinaryOperation",
                                                                "src": "27135:19:14"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transfer",
                                                                                            "referencedDeclaration": 363,
                                                                                            "type": "function (address,uint256) external returns (bool)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "contract IERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 409,
                                                                                                            "type": "type(contract IERC20)",
                                                                                                            "value": "IERC20"
                                                                                                        },
                                                                                                        "id": 3435,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "27174:6:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3408,
                                                                                                            "type": "address",
                                                                                                            "value": "cashContract"
                                                                                                        },
                                                                                                        "id": 3436,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "27181:12:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3437,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "27174:20:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3438,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "27174:29:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3402,
                                                                                            "type": "address",
                                                                                            "value": "feeTo"
                                                                                        },
                                                                                        "id": 3439,
                                                                                        "name": "Identifier",
                                                                                        "src": "27204:5:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "mulDown",
                                                                                                    "referencedDeclaration": 8604,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8909,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 3440,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "27211:10:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3441,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "27211:18:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3371,
                                                                                                    "type": "uint256",
                                                                                                    "value": "fees"
                                                                                                },
                                                                                                "id": 3442,
                                                                                                "name": "Identifier",
                                                                                                "src": "27230:4:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3361,
                                                                                                    "type": "uint256",
                                                                                                    "value": "value"
                                                                                                },
                                                                                                "id": 3443,
                                                                                                "name": "Identifier",
                                                                                                "src": "27236:5:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3444,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "27211:31:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3445,
                                                                                "name": "FunctionCall",
                                                                                "src": "27174:69:14"
                                                                            }
                                                                        ],
                                                                        "id": 3446,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "27174:69:14"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3374,
                                                                                            "type": "uint256",
                                                                                            "value": "returnValue"
                                                                                        },
                                                                                        "id": 3447,
                                                                                        "name": "Identifier",
                                                                                        "src": "27262:11:14"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 10300,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10483,
                                                                                                            "type": "type(library Math)",
                                                                                                            "value": "Math"
                                                                                                        },
                                                                                                        "id": 3448,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "27276:4:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3449,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "27276:8:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 3361,
                                                                                                    "type": "uint256",
                                                                                                    "value": "value"
                                                                                                },
                                                                                                "id": 3450,
                                                                                                "name": "Identifier",
                                                                                                "src": "27285:5:14"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "mulDown",
                                                                                                            "referencedDeclaration": 8604,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8909,
                                                                                                                    "type": "type(library FixedPoint)",
                                                                                                                    "value": "FixedPoint"
                                                                                                                },
                                                                                                                "id": 3451,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "27292:10:14"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 3452,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "27292:18:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3371,
                                                                                                            "type": "uint256",
                                                                                                            "value": "fees"
                                                                                                        },
                                                                                                        "id": 3453,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "27311:4:14"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3361,
                                                                                                            "type": "uint256",
                                                                                                            "value": "value"
                                                                                                        },
                                                                                                        "id": 3454,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "27317:5:14"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 3455,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "27292:31:14"
                                                                                            }
                                                                                        ],
                                                                                        "id": 3456,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "27276:48:14"
                                                                                    }
                                                                                ],
                                                                                "id": 3457,
                                                                                "name": "Assignment",
                                                                                "src": "27262:62:14"
                                                                            }
                                                                        ],
                                                                        "id": 3458,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "27262:62:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "functionReturnParameters": 3369
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3374,
                                                                                    "type": "uint256",
                                                                                    "value": "returnValue"
                                                                                },
                                                                                "id": 3459,
                                                                                "name": "Identifier",
                                                                                "src": "27350:11:14"
                                                                            }
                                                                        ],
                                                                        "id": 3460,
                                                                        "name": "Return",
                                                                        "src": "27343:18:14"
                                                                    }
                                                                ],
                                                                "id": 3461,
                                                                "name": "Block",
                                                                "src": "27155:222:14"
                                                            }
                                                        ],
                                                        "id": 3462,
                                                        "name": "IfStatement",
                                                        "src": "27132:245:14"
                                                    }
                                                ],
                                                "id": 3463,
                                                "name": "Block",
                                                "src": "26807:581:14"
                                            }
                                        ],
                                        "id": 3464,
                                        "name": "IfStatement",
                                        "src": "26795:593:14"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 3369
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 3361,
                                                    "type": "uint256",
                                                    "value": "value"
                                                },
                                                "id": 3465,
                                                "name": "Identifier",
                                                "src": "27405:5:14"
                                            }
                                        ],
                                        "id": 3466,
                                        "name": "Return",
                                        "src": "27398:12:14"
                                    }
                                ],
                                "id": 3467,
                                "name": "Block",
                                "src": "26568:850:14"
                            }
                        ],
                        "id": 3468,
                        "name": "FunctionDefinition",
                        "src": "26478:940:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "amlCheck",
                            "scope": 3597,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "account",
                                            "scope": 3501,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3469,
                                                "name": "ElementaryTypeName",
                                                "src": "27488:7:14"
                                            }
                                        ],
                                        "id": 3470,
                                        "name": "VariableDeclaration",
                                        "src": "27488:15:14"
                                    }
                                ],
                                "id": 3471,
                                "name": "ParameterList",
                                "src": "27487:17:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3501,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 3472,
                                                "name": "ElementaryTypeName",
                                                "src": "27526:4:14"
                                            }
                                        ],
                                        "id": 3473,
                                        "name": "VariableDeclaration",
                                        "src": "27526:4:14"
                                    }
                                ],
                                "id": 3474,
                                "name": "ParameterList",
                                "src": "27525:6:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                3476
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "client",
                                                    "scope": 3500,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 3475,
                                                        "name": "ElementaryTypeName",
                                                        "src": "27542:7:14"
                                                    }
                                                ],
                                                "id": 3476,
                                                "name": "VariableDeclaration",
                                                "src": "27542:14:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getClient",
                                                            "referencedDeclaration": 8361,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 1333,
                                                                    "type": "contract ViaFactory",
                                                                    "value": "factory"
                                                                },
                                                                "id": 3477,
                                                                "name": "Identifier",
                                                                "src": "27559:7:14"
                                                            }
                                                        ],
                                                        "id": 3478,
                                                        "name": "MemberAccess",
                                                        "src": "27559:17:14"
                                                    }
                                                ],
                                                "id": 3479,
                                                "name": "FunctionCall",
                                                "src": "27559:19:14"
                                            }
                                        ],
                                        "id": 3480,
                                        "name": "VariableDeclarationStatement",
                                        "src": "27542:36:14"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3476,
                                                            "type": "address",
                                                            "value": "client"
                                                        },
                                                        "id": 3481,
                                                        "name": "Identifier",
                                                        "src": "27592:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 3482,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "27600:7:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 3483,
                                                                "name": "Literal",
                                                                "src": "27608:3:14"
                                                            }
                                                        ],
                                                        "id": 3484,
                                                        "name": "FunctionCall",
                                                        "src": "27600:12:14"
                                                    }
                                                ],
                                                "id": 3485,
                                                "name": "BinaryOperation",
                                                "src": "27592:20:14"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 3474
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 3486,
                                                        "name": "Literal",
                                                        "src": "27634:4:14"
                                                    }
                                                ],
                                                "id": 3487,
                                                "name": "Return",
                                                "src": "27627:11:14"
                                            }
                                        ],
                                        "id": 3488,
                                        "name": "IfStatement",
                                        "src": "27589:49:14"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getAMLStatus",
                                                            "referencedDeclaration": 7999,
                                                            "type": "function (address) view external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract VerifiedClient",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8022,
                                                                            "type": "type(contract VerifiedClient)",
                                                                            "value": "VerifiedClient"
                                                                        },
                                                                        "id": 3489,
                                                                        "name": "Identifier",
                                                                        "src": "27652:14:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3476,
                                                                            "type": "address",
                                                                            "value": "client"
                                                                        },
                                                                        "id": 3490,
                                                                        "name": "Identifier",
                                                                        "src": "27667:6:14"
                                                                    }
                                                                ],
                                                                "id": 3491,
                                                                "name": "FunctionCall",
                                                                "src": "27652:22:14"
                                                            }
                                                        ],
                                                        "id": 3492,
                                                        "name": "MemberAccess",
                                                        "src": "27652:35:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3470,
                                                            "type": "address",
                                                            "value": "account"
                                                        },
                                                        "id": 3493,
                                                        "name": "Identifier",
                                                        "src": "27688:7:14"
                                                    }
                                                ],
                                                "id": 3494,
                                                "name": "FunctionCall",
                                                "src": "27652:44:14"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 3474
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 3495,
                                                        "name": "Literal",
                                                        "src": "27718:4:14"
                                                    }
                                                ],
                                                "id": 3496,
                                                "name": "Return",
                                                "src": "27711:11:14"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 3474
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 3497,
                                                        "name": "Literal",
                                                        "src": "27758:5:14"
                                                    }
                                                ],
                                                "id": 3498,
                                                "name": "Return",
                                                "src": "27751:12:14"
                                            }
                                        ],
                                        "id": 3499,
                                        "name": "IfStatement",
                                        "src": "27649:114:14"
                                    }
                                ],
                                "id": 3500,
                                "name": "Block",
                                "src": "27531:240:14"
                            }
                        ],
                        "id": 3501,
                        "name": "FunctionDefinition",
                        "src": "27470:301:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "pause",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3502,
                                "name": "ParameterList",
                                "src": "27797:2:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3510,
                                "name": "ParameterList",
                                "src": "27854:0:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 3548,
                                            "type": "modifier (address,address)",
                                            "value": "onlyFactoryOwner"
                                        },
                                        "id": 3503,
                                        "name": "Identifier",
                                        "src": "27800:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "referencedDeclaration": null,
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13007,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 3504,
                                                "name": "Identifier",
                                                "src": "27817:3:14"
                                            }
                                        ],
                                        "id": 3505,
                                        "name": "MemberAccess",
                                        "src": "27817:10:14"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address",
                                            "type_conversion": true
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                            "typeString": "contract ViaFactory"
                                                        }
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "type": "type(address)",
                                                    "value": "address"
                                                },
                                                "id": 3506,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "27829:7:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 1333,
                                                    "type": "contract ViaFactory",
                                                    "value": "factory"
                                                },
                                                "id": 3507,
                                                "name": "Identifier",
                                                "src": "27837:7:14"
                                            }
                                        ],
                                        "id": 3508,
                                        "name": "FunctionCall",
                                        "src": "27829:16:14"
                                    }
                                ],
                                "id": 3509,
                                "name": "ModifierInvocation",
                                "src": "27800:46:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12557,
                                                            "type": "function ()",
                                                            "value": "_pause"
                                                        },
                                                        "id": 3511,
                                                        "name": "Identifier",
                                                        "src": "27865:6:14"
                                                    }
                                                ],
                                                "id": 3512,
                                                "name": "FunctionCall",
                                                "src": "27865:8:14"
                                            }
                                        ],
                                        "id": 3513,
                                        "name": "ExpressionStatement",
                                        "src": "27865:8:14"
                                    }
                                ],
                                "id": 3514,
                                "name": "Block",
                                "src": "27854:27:14"
                            }
                        ],
                        "id": 3515,
                        "name": "FunctionDefinition",
                        "src": "27783:98:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "unpause",
                            "scope": 3597,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3516,
                                "name": "ParameterList",
                                "src": "27903:2:14"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 3524,
                                "name": "ParameterList",
                                "src": "27960:0:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 3548,
                                            "type": "modifier (address,address)",
                                            "value": "onlyFactoryOwner"
                                        },
                                        "id": 3517,
                                        "name": "Identifier",
                                        "src": "27906:16:14"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "referencedDeclaration": null,
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 13007,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 3518,
                                                "name": "Identifier",
                                                "src": "27923:3:14"
                                            }
                                        ],
                                        "id": 3519,
                                        "name": "MemberAccess",
                                        "src": "27923:10:14"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address",
                                            "type_conversion": true
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                                            "typeString": "contract ViaFactory"
                                                        }
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "type": "type(address)",
                                                    "value": "address"
                                                },
                                                "id": 3520,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "27935:7:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 1333,
                                                    "type": "contract ViaFactory",
                                                    "value": "factory"
                                                },
                                                "id": 3521,
                                                "name": "Identifier",
                                                "src": "27943:7:14"
                                            }
                                        ],
                                        "id": 3522,
                                        "name": "FunctionCall",
                                        "src": "27935:16:14"
                                    }
                                ],
                                "id": 3523,
                                "name": "ModifierInvocation",
                                "src": "27906:46:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 12568,
                                                            "type": "function ()",
                                                            "value": "_unpause"
                                                        },
                                                        "id": 3525,
                                                        "name": "Identifier",
                                                        "src": "27971:8:14"
                                                    }
                                                ],
                                                "id": 3526,
                                                "name": "FunctionCall",
                                                "src": "27971:10:14"
                                            }
                                        ],
                                        "id": 3527,
                                        "name": "ExpressionStatement",
                                        "src": "27971:10:14"
                                    }
                                ],
                                "id": 3528,
                                "name": "Block",
                                "src": "27960:29:14"
                            }
                        ],
                        "id": 3529,
                        "name": "FunctionDefinition",
                        "src": "27887:102:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "onlyFactoryOwner",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_sender",
                                            "scope": 3548,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3530,
                                                "name": "ElementaryTypeName",
                                                "src": "28024:7:14"
                                            }
                                        ],
                                        "id": 3531,
                                        "name": "VariableDeclaration",
                                        "src": "28024:15:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_factory",
                                            "scope": 3548,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 3532,
                                                "name": "ElementaryTypeName",
                                                "src": "28041:7:14"
                                            }
                                        ],
                                        "id": 3533,
                                        "name": "VariableDeclaration",
                                        "src": "28041:16:14"
                                    }
                                ],
                                "id": 3534,
                                "name": "ParameterList",
                                "src": "28023:35:14"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13010,
                                                            "type": "function (bool) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 3535,
                                                        "name": "Identifier",
                                                        "src": "28069:7:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3531,
                                                                            "type": "address",
                                                                            "value": "_sender"
                                                                        },
                                                                        "id": 3536,
                                                                        "name": "Identifier",
                                                                        "src": "28077:7:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        null
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 259,
                                                                                    "type": "function () view returns (address)",
                                                                                    "value": "owner"
                                                                                },
                                                                                "id": 3537,
                                                                                "name": "Identifier",
                                                                                "src": "28088:5:14"
                                                                            }
                                                                        ],
                                                                        "id": 3538,
                                                                        "name": "FunctionCall",
                                                                        "src": "28088:7:14"
                                                                    }
                                                                ],
                                                                "id": 3539,
                                                                "name": "BinaryOperation",
                                                                "src": "28077:18:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3531,
                                                                            "type": "address",
                                                                            "value": "_sender"
                                                                        },
                                                                        "id": 3540,
                                                                        "name": "Identifier",
                                                                        "src": "28099:7:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3533,
                                                                            "type": "address",
                                                                            "value": "_factory"
                                                                        },
                                                                        "id": 3541,
                                                                        "name": "Identifier",
                                                                        "src": "28110:8:14"
                                                                    }
                                                                ],
                                                                "id": 3542,
                                                                "name": "BinaryOperation",
                                                                "src": "28099:19:14"
                                                            }
                                                        ],
                                                        "id": 3543,
                                                        "name": "BinaryOperation",
                                                        "src": "28077:41:14"
                                                    }
                                                ],
                                                "id": 3544,
                                                "name": "FunctionCall",
                                                "src": "28069:50:14"
                                            }
                                        ],
                                        "id": 3545,
                                        "name": "ExpressionStatement",
                                        "src": "28069:50:14"
                                    },
                                    {
                                        "id": 3546,
                                        "name": "PlaceholderStatement",
                                        "src": "28130:1:14"
                                    }
                                ],
                                "id": 3547,
                                "name": "Block",
                                "src": "28058:81:14"
                            }
                        ],
                        "id": 3548,
                        "name": "ModifierDefinition",
                        "src": "27997:142:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_computeScalingFactor",
                            "scope": 3597,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tkn",
                                            "scope": 3580,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "contract IERC20",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "contractScope": null,
                                                    "name": "IERC20",
                                                    "referencedDeclaration": 409,
                                                    "type": "contract IERC20"
                                                },
                                                "id": 3549,
                                                "name": "UserDefinedTypeName",
                                                "src": "28178:6:14"
                                            }
                                        ],
                                        "id": 3550,
                                        "name": "VariableDeclaration",
                                        "src": "28178:10:14"
                                    }
                                ],
                                "id": 3551,
                                "name": "ParameterList",
                                "src": "28177:12:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3580,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3552,
                                                "name": "ElementaryTypeName",
                                                "src": "28213:7:14"
                                            }
                                        ],
                                        "id": 3553,
                                        "name": "VariableDeclaration",
                                        "src": "28213:7:14"
                                    }
                                ],
                                "id": 3554,
                                "name": "ParameterList",
                                "src": "28212:9:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                3556
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "tokenDecimals",
                                                    "scope": 3579,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 3555,
                                                        "name": "ElementaryTypeName",
                                                        "src": "28316:7:14"
                                                    }
                                                ],
                                                "id": 3556,
                                                "name": "VariableDeclaration",
                                                "src": "28316:21:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint8",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "decimals",
                                                            "referencedDeclaration": 12153,
                                                            "type": "function () view external returns (uint8)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12538,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 3557,
                                                                        "name": "Identifier",
                                                                        "src": "28340:5:14"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$409",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 3558,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "28346:7:14"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3550,
                                                                                    "type": "contract IERC20",
                                                                                    "value": "tkn"
                                                                                },
                                                                                "id": 3559,
                                                                                "name": "Identifier",
                                                                                "src": "28354:3:14"
                                                                            }
                                                                        ],
                                                                        "id": 3560,
                                                                        "name": "FunctionCall",
                                                                        "src": "28346:12:14"
                                                                    }
                                                                ],
                                                                "id": 3561,
                                                                "name": "FunctionCall",
                                                                "src": "28340:19:14"
                                                            }
                                                        ],
                                                        "id": 3562,
                                                        "name": "MemberAccess",
                                                        "src": "28340:28:14"
                                                    }
                                                ],
                                                "id": 3563,
                                                "name": "FunctionCall",
                                                "src": "28340:30:14"
                                            }
                                        ],
                                        "id": 3564,
                                        "name": "VariableDeclarationStatement",
                                        "src": "28316:54:14"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                3566
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "decimalsDifference",
                                                    "scope": 3579,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 3565,
                                                        "name": "ElementaryTypeName",
                                                        "src": "28448:7:14"
                                                    }
                                                ],
                                                "id": 3566,
                                                "name": "VariableDeclaration",
                                                "src": "28448:26:14"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_18_by_1",
                                                                    "typeString": "int_const 18"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sub",
                                                            "referencedDeclaration": 10300,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10483,
                                                                    "type": "type(library Math)",
                                                                    "value": "Math"
                                                                },
                                                                "id": 3567,
                                                                "name": "Identifier",
                                                                "src": "28477:4:14"
                                                            }
                                                        ],
                                                        "id": 3568,
                                                        "name": "MemberAccess",
                                                        "src": "28477:8:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "3138",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 18",
                                                            "value": "18"
                                                        },
                                                        "id": 3569,
                                                        "name": "Literal",
                                                        "src": "28486:2:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3556,
                                                            "type": "uint256",
                                                            "value": "tokenDecimals"
                                                        },
                                                        "id": 3570,
                                                        "name": "Identifier",
                                                        "src": "28490:13:14"
                                                    }
                                                ],
                                                "id": 3571,
                                                "name": "FunctionCall",
                                                "src": "28477:27:14"
                                            }
                                        ],
                                        "id": 3572,
                                        "name": "VariableDeclarationStatement",
                                        "src": "28448:56:14"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 3554
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "*",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "31653138",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 1000000000000000000",
                                                            "value": "1e18"
                                                        },
                                                        "id": 3573,
                                                        "name": "Literal",
                                                        "src": "28522:4:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "**",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "3130",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 10",
                                                                    "value": "10"
                                                                },
                                                                "id": 3574,
                                                                "name": "Literal",
                                                                "src": "28529:2:14"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3566,
                                                                    "type": "uint256",
                                                                    "value": "decimalsDifference"
                                                                },
                                                                "id": 3575,
                                                                "name": "Identifier",
                                                                "src": "28533:18:14"
                                                            }
                                                        ],
                                                        "id": 3576,
                                                        "name": "BinaryOperation",
                                                        "src": "28529:22:14"
                                                    }
                                                ],
                                                "id": 3577,
                                                "name": "BinaryOperation",
                                                "src": "28522:29:14"
                                            }
                                        ],
                                        "id": 3578,
                                        "name": "Return",
                                        "src": "28515:36:14"
                                    }
                                ],
                                "id": 3579,
                                "name": "Block",
                                "src": "28222:337:14"
                            }
                        ],
                        "id": 3580,
                        "name": "FunctionDefinition",
                        "src": "28147:412:14"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_upscale",
                            "scope": 3597,
                            "stateMutability": "pure",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 3596,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3581,
                                                "name": "ElementaryTypeName",
                                                "src": "28585:7:14"
                                            }
                                        ],
                                        "id": 3582,
                                        "name": "VariableDeclaration",
                                        "src": "28585:14:14"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "scalingFactor",
                                            "scope": 3596,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3583,
                                                "name": "ElementaryTypeName",
                                                "src": "28601:7:14"
                                            }
                                        ],
                                        "id": 3584,
                                        "name": "VariableDeclaration",
                                        "src": "28601:21:14"
                                    }
                                ],
                                "id": 3585,
                                "name": "ParameterList",
                                "src": "28584:39:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 3596,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 3586,
                                                "name": "ElementaryTypeName",
                                                "src": "28647:7:14"
                                            }
                                        ],
                                        "id": 3587,
                                        "name": "VariableDeclaration",
                                        "src": "28647:7:14"
                                    }
                                ],
                                "id": 3588,
                                "name": "ParameterList",
                                "src": "28646:9:14"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 3588
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "mulDown",
                                                            "referencedDeclaration": 8604,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8909,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 3589,
                                                                "name": "Identifier",
                                                                "src": "28682:10:14"
                                                            }
                                                        ],
                                                        "id": 3590,
                                                        "name": "MemberAccess",
                                                        "src": "28682:18:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3582,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 3591,
                                                        "name": "Identifier",
                                                        "src": "28701:6:14"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3584,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 3592,
                                                        "name": "Identifier",
                                                        "src": "28709:13:14"
                                                    }
                                                ],
                                                "id": 3593,
                                                "name": "FunctionCall",
                                                "src": "28682:41:14"
                                            }
                                        ],
                                        "id": 3594,
                                        "name": "Return",
                                        "src": "28675:48:14"
                                    }
                                ],
                                "id": 3595,
                                "name": "Block",
                                "src": "28656:75:14"
                            }
                        ],
                        "id": 3596,
                        "name": "FunctionDefinition",
                        "src": "28567:164:14"
                    }
                ],
                "id": 3597,
                "name": "ContractDefinition",
                "src": "803:27937:14"
            }
        ],
        "id": 3598,
        "name": "SourceUnit",
        "src": "116:28624:14"
    },
    "compiler": {
        "name": "solc",
        "version": "0.5.7+commit.6da8b019.Emscripten.clang"
    },
    "networks": {
        "11155111": {
            "events": {},
            "links": {
                "stringutils": "0xE0fB9FEe5E65de096e23cF8D2A9C9954027bA318"
            },
            "address": "0xA357BaE12300992087560fd62c0638A91cD453C2",
            "transactionHash": "0x5381556f4fef48967a2144e00697e1069fca017ba810087b973a569e44481e06"
        }
    },
    "schemaVersion": "3.4.16",
    "updatedAt": "2025-07-26T12:25:15.304Z",
    "networkType": "ethereum",
    "devdoc": {
        "methods": {
            "allowance(address,address)": {
                "details": "See {IERC20-allowance}.\r"
            },
            "approve(address,uint256)": {
                "details": "See {IERC20-approve}.\r      * Requirements:\r      * - `spender` cannot be the zero address.\r"
            },
            "balanceOf(address)": {
                "details": "See {IERC20-balanceOf}.\r"
            },
            "decimals()": {
                "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5.05` (`505 / 10 ** 2`).\r      * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei. This is the default value returned by this function, unless\r it's overridden.\r      * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r"
            },
            "decreaseAllowance(address,uint256)": {
                "details": "Atomically decreases the allowance granted to `spender` by the caller.\r      * This is an alternative to {approve} that can be used as a mitigation for\r problems described in {IERC20-approve}.\r      * Emits an {Approval} event indicating the updated allowance.\r      * Requirements:\r      * - `spender` cannot be the zero address.\r - `spender` must have allowance for the caller of at least\r `subtractedValue`.\r"
            },
            "increaseAllowance(address,uint256)": {
                "details": "Atomically increases the allowance granted to `spender` by the caller.\r      * This is an alternative to {approve} that can be used as a mitigation for\r problems described in {IERC20-approve}.\r      * Emits an {Approval} event indicating the updated allowance.\r      * Requirements:\r      * - `spender` cannot be the zero address.\r"
            },
            "initialize(address)": {
                "details": "Initializes the contract setting the deployer as the initial owner."
            },
            "isOwner()": {
                "details": "Returns true if the caller is the current owner."
            },
            "isPaused()": {
                "return": "True: contract is paused\rFalse: contract is not paused\r"
            },
            "name()": {
                "details": "Returns the name of the token.\r"
            },
            "owner()": {
                "details": "Returns the address of the current owner."
            },
            "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."
            },
            "symbol()": {
                "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r"
            },
            "totalSupply()": {
                "details": "See {IERC20-totalSupply}.\r"
            },
            "transfer(address,uint256)": {
                "details": "See {IERC20-transfer}.\r      * Requirements:\r      * - `recipient` cannot be the zero address.\r - the caller must have a balance of at least `amount`.\r"
            },
            "transferFrom(address,address,uint256)": {
                "details": "See {IERC20-transferFrom}.\r      * Emits an {Approval} event indicating the updated allowance. This is not\r required by the EIP. See the note at the beginning of {ERC20};\r      * Requirements:\r - `sender` and `recipient` cannot be the zero address.\r - `sender` must have a balance of at least `amount`.\r - the caller must have allowance for `sender`'s tokens of at least\r `amount`.\r"
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            }
        }
    },
    "userdoc": {
        "methods": {
            "isPaused()": {
                "notice": "returns whether or not the contract is paused\r"
            }
        }
    }
}
