{
    "contractName": "Factory",
    "abi": [
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                },
                {
                    "name": "_signature",
                    "type": "bytes"
                }
            ],
            "name": "getSigner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                },
                {
                    "name": "_signature",
                    "type": "bytes"
                }
            ],
            "name": "deploySigned",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "tokens",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                }
            ],
            "name": "deploy",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "token",
            "outputs": [
                {
                    "name": "tokenType",
                    "type": "bytes32"
                },
                {
                    "name": "name",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_salt",
                    "type": "uint256"
                },
                {
                    "name": "_sender",
                    "type": "address"
                }
            ],
            "name": "getDeploymentAddress",
            "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": false,
            "inputs": [
                {
                    "name": "_logic",
                    "type": "address"
                },
                {
                    "name": "_data",
                    "type": "bytes"
                }
            ],
            "name": "deployMinimal",
            "outputs": [
                {
                    "name": "proxy",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "currencies",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "tokenType",
                    "type": "bytes32"
                }
            ],
            "name": "CashIssuerCreated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "tokenType",
                    "type": "bytes32"
                }
            ],
            "name": "BondIssuerCreated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "tokenType",
                    "type": "bytes32"
                }
            ],
            "name": "TokenCreated",
            "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": false,
                    "name": "proxy",
                    "type": "address"
                }
            ],
            "name": "ProxyCreated",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [],
            "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": true,
            "inputs": [],
            "name": "getTokenCount",
            "outputs": [
                {
                    "name": "tokenCount",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "n",
                    "type": "uint256"
                }
            ],
            "name": "getToken",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "viaAddress",
                    "type": "address"
                }
            ],
            "name": "getName",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "viaAddress",
                    "type": "address"
                }
            ],
            "name": "getType",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "viaAddress",
                    "type": "address"
                }
            ],
            "name": "getNameAndType",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                },
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "name": "tokenType",
                    "type": "bytes32"
                }
            ],
            "name": "getTokenByNameType",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "tokenType",
                    "type": "bytes32"
                },
                {
                    "name": "tokenName",
                    "type": "bytes32"
                }
            ],
            "name": "getIssuer",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "tokenName",
                    "type": "bytes32"
                }
            ],
            "name": "getAddressAndType",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getViaOracleUrl",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getFiatPayoutUrl",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "fromCurrency",
                    "type": "bytes32"
                },
                {
                    "name": "toCurrency",
                    "type": "bytes32"
                }
            ],
            "name": "getCryptoDataUrl",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getClient",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getOracles",
            "outputs": [
                {
                    "name": "",
                    "type": "address[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_bondToken",
                    "type": "address"
                }
            ],
            "name": "getBondTerm",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_target",
                    "type": "address"
                },
                {
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "name": "tokenType",
                    "type": "bytes32"
                },
                {
                    "name": "tokenCurrency",
                    "type": "bytes32"
                },
                {
                    "name": "_oracle",
                    "type": "address"
                },
                {
                    "name": "_token",
                    "type": "address"
                },
                {
                    "name": "_fee",
                    "type": "address"
                }
            ],
            "name": "createIssuer",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_target",
                    "type": "address"
                },
                {
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "name": "tokenName",
                    "type": "bytes32"
                },
                {
                    "name": "tokenSymbol",
                    "type": "bytes32"
                }
            ],
            "name": "createToken",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_url",
                    "type": "string"
                }
            ],
            "name": "setViaOracleUrl",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_url",
                    "type": "string"
                }
            ],
            "name": "setFiatPayoutUrl",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_url",
                    "type": "string"
                },
                {
                    "name": "_fromCurrency",
                    "type": "bytes32"
                },
                {
                    "name": "_toCurrency",
                    "type": "bytes32"
                }
            ],
            "name": "setCryptoDataURL",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_oracles",
                    "type": "address[]"
                }
            ],
            "name": "setOracles",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_bondToken",
                    "type": "address"
                },
                {
                    "name": "_term",
                    "type": "uint256"
                }
            ],
            "name": "setBondTerm",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_client",
                    "type": "address"
                }
            ],
            "name": "setClientAddress",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_currency",
                    "type": "bytes32"
                },
                {
                    "name": "_address",
                    "type": "address"
                }
            ],
            "name": "supportTokens",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_currency",
                    "type": "bytes32"
                }
            ],
            "name": "checkSupportForToken",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_currency",
                    "type": "bytes32"
                }
            ],
            "name": "getCurrencyToken",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"getSigner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"}],\"name\":\"getIssuer\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"},{\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"deploySigned\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getViaOracleUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOracles\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_bondToken\",\"type\":\"address\"},{\"name\":\"_term\",\"type\":\"uint256\"}],\"name\":\"setBondTerm\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getClient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_bondToken\",\"type\":\"address\"}],\"name\":\"getBondTerm\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getName\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getNameAndType\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"token\",\"outputs\":[{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"name\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"fromCurrency\",\"type\":\"bytes32\"},{\"name\":\"toCurrency\",\"type\":\"bytes32\"}],\"name\":\"getCryptoDataUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getTokenCount\",\"outputs\":[{\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_client\",\"type\":\"address\"}],\"name\":\"setClientAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_salt\",\"type\":\"uint256\"},{\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"getDeploymentAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenType\",\"type\":\"bytes32\"},{\"name\":\"tokenCurrency\",\"type\":\"bytes32\"},{\"name\":\"_oracle\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"address\"}],\"name\":\"createIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_target\",\"type\":\"address\"},{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenSymbol\",\"type\":\"bytes32\"}],\"name\":\"createToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"getFiatPayoutUrl\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_oracles\",\"type\":\"address[]\"}],\"name\":\"setOracles\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_logic\",\"type\":\"address\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"deployMinimal\",\"outputs\":[{\"name\":\"proxy\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"},{\"name\":\"_fromCurrency\",\"type\":\"bytes32\"},{\"name\":\"_toCurrency\",\"type\":\"bytes32\"}],\"name\":\"setCryptoDataURL\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_currency\",\"type\":\"bytes32\"}],\"name\":\"getCurrencyToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenName\",\"type\":\"bytes32\"}],\"name\":\"getAddressAndType\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setFiatPayoutUrl\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_currency\",\"type\":\"bytes32\"}],\"name\":\"checkSupportForToken\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_currency\",\"type\":\"bytes32\"},{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"supportTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"n\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setViaOracleUrl\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"getTokenByNameType\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"viaAddress\",\"type\":\"address\"}],\"name\":\"getType\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"currencies\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"CashIssuerCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"BondIssuerCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"bytes32\"}],\"name\":\"TokenCreated\",\"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\":false,\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"ProxyCreated\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"initialize(address)\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"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.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Factory.sol\":\"Factory\"},\"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/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"@openzeppelin/upgrades/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x0ca3de3dc8aac4114ff0b123fcabef91901de1a30938f3e954846ad99909b972\",\"urls\":[\"bzzr://7905b8ce67a4d4b0744f0f08abb7c4ec1762b18ee39ee7d64fc73beb0da0db19\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0xbf8ee1cf63a430a3eb8b39a9145d0d133400b8db06fa9fd33056597f7d8ceb25\",\"urls\":[\"bzzr://f9563fda28096fae1396dce1f6eb5f5afc664677887071076b7e4b0e6d06bd56\"]},\"@openzeppelin/upgrades/contracts/upgradeability/BaseUpgradeabilityProxy.sol\":{\"keccak256\":\"0x1b37f808dc0a45976ad23aa53908c485a74a4d9fbd03066a5ab399c46436e570\",\"urls\":[\"bzzr://c309686ae393a7474d0af3a7237b5ef3c452d9f78756d40caeeaad4caf2c2efb\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableAdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0x91f2b663c89b940dce6dbd00f5e7bf326cdf02d1da4ddbcb7e64b313e60d9afc\",\"urls\":[\"bzzr://572ab82efb4e71dbb88e992eedc363f72290eb2fdc1081023e66680d2a69ef07\"]},\"@openzeppelin/upgrades/contracts/upgradeability/InitializableUpgradeabilityProxy.sol\":{\"keccak256\":\"0x6b84a0236a899ba5aa673ea34d5efa1f93dba461e13d8799f51a9f7b64b59f4f\",\"urls\":[\"bzzr://bc421cdd1f5c8313a0eaf237c9110d187674955d3eacbc187bddeda82a664053\"]},\"@openzeppelin/upgrades/contracts/upgradeability/Proxy.sol\":{\"keccak256\":\"0xd8074ae5fa7ee6384ca8196a896612fb044bbf4ff4b7336d03cd97845000ac21\",\"urls\":[\"bzzr://a94275c7d409e80fa5cf6f31c8a6b97cf85c231de40585d42ae98bab426562c6\"]},\"@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol\":{\"keccak256\":\"0xf4932759c88b26dd0b37a7ba960c44f7a4e817127846befb4b4fb72ee8f2c573\",\"urls\":[\"bzzr://6b7fb7e0bdbbbcbf9cbd110fc19a23bfa4eeb583c767b66614124f34f2135b42\"]},\"@openzeppelin/upgrades/contracts/upgradeability/UpgradeabilityProxy.sol\":{\"keccak256\":\"0xb02c6349ba01df9902857b6058f92b37f13187775cce9da74f6f28410205445b\",\"urls\":[\"bzzr://2a95f00787c16351caad43b25048cc40eff9f140c4b1284fbf502dfd9b708489\"]},\"@openzeppelin/upgrades/contracts/utils/Address.sol\":{\"keccak256\":\"0x7be7f8e4c08bc70ff9815e3f11c569f42aa3c447b5bc61fd75fb5cec97f63a9f\",\"urls\":[\"bzzr://b6a2c355fa7aadb6c25e8691e98abc26d3429afa58eb761af4ab5377eee30709\"]},\"project:/contracts/Factory.sol\":{\"keccak256\":\"0xbc7b8acdc0f6d61ab4a8dd7ce75a25b15275f6b854c8f6870e565e9ef76274d4\",\"urls\":[\"bzzr://ff7c26c7b7728f92b7b0a50d043e5faf6f3f8c00ba35cc25b6f0e7395467c77c\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xb4de3dbb08a33aef4860197790d320239afced5fab06ba8b625398671b76c780\",\"urls\":[\"bzzr://de06105d01c0e25f52ac75c1069e79795cc15cdf0169fc574534910055f8b58d\"]},\"project:/contracts/interfaces/ViaFactory.sol\":{\"keccak256\":\"0xd71096d3b9b6e130416a346913097dd5a5f1ca16e242778c9e1005058b14b7f2\",\"urls\":[\"bzzr://b2eeb8b364fec878cee9035228fce18a58d7cec7a0be946df554de65dd51332b\"]},\"project:/contracts/interfaces/ViaToken.sol\":{\"keccak256\":\"0xfe45ec0f3e72d12ca2c0dd9ff16258eec9a30b736dddfc8f799b7f2601b1aae0\",\"urls\":[\"bzzr://3d36c5055be4b4f517ee1670643fa0a139811d45ed844195009b00a8fc666c87\"]}},\"version\":1}",
    "bytecode": "0x6080604081905261001060a0610034565b601f1982820381018352601f90910116604052805160209190910120600055610042565b6109a6806200345283390190565b61340080620000526000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c806388a365f41161013b578063baa796bd116100b8578063edf6a8ac1161007c578063edf6a8ac14610bf6578063f2fde38b14610c64578063f3458f1414610c8a578063f429f19b14610cad578063f6d1c27114610cd35761023d565b8063baa796bd14610afc578063c4d66de814610b6a578063d11322d414610b90578063d6a5aad814610bad578063e4b50cb814610bd95761023d565b8063ae9b71af116100ff578063ae9b71af14610909578063b3eeb5e214610977578063b6f7477514610a2b578063b946762914610a9f578063b96b200414610abc5761023d565b806388a365f41461084f5780638d5040cc146108a15780638da5cb5b146108dd5780638f32d59b146108e5578063968eb4b2146109015761023d565b80635fd4b08a116101c9578063715018a61161018d578063715018a6146107e557806378a89567146107ed578063805ef812146107f55780638129fc1c1461081b57806381ae1f5b146108235761023d565b80635fd4b08a146106735780636150864c14610699578063668151a71461075d5780636d46a1db1461079c578063708b0773146107c25761023d565b806340884c521161021057806340884c52146105905780634f64b2be146105e85780635810c6ce1461060557806359dc735c146106335780635af4730a1461063b5761023d565b8063290f8f56146102425780632ea77917146103a7578063332d6626146103ca5780633e18b01b14610513575b600080fd5b61038b600480360360a081101561025857600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561029257600080fd5b8201836020820111156102a457600080fd5b803590602001918460018302840111600160201b831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561031757600080fd5b82018360208201111561032957600080fd5b803590602001918460018302840111600160201b8311171561034a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cf0945050505050565b604080516001600160a01b039092168252519081900360200190f35b61038b600480360360408110156103bd57600080fd5b5080359060200135610ddf565b61038b600480360360a08110156103e057600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561041a57600080fd5b82018360208201111561042c57600080fd5b803590602001918460018302840111600160201b8311171561044d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561049f57600080fd5b8201836020820111156104b157600080fd5b803590602001918460018302840111600160201b831117156104d257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e09945050505050565b61051b610e86565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561055557818101518382015260200161053d565b50505050905090810190601f1680156105825780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610598610f31565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105d45781810151838201526020016105bc565b505050509050019250505060405180910390f35b61038b600480360360208110156105fe57600080fd5b5035610faa565b6106316004803603604081101561061b57600080fd5b506001600160a01b038135169060200135610fd1565b005b61038b6110ba565b6106616004803603602081101561065157600080fd5b50356001600160a01b0316611163565b60408051918252519081900360200190f35b6106616004803603602081101561068957600080fd5b50356001600160a01b0316611182565b61038b600480360360808110156106af57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156106e957600080fd5b8201836020820111156106fb57600080fd5b803590602001918460018302840111600160201b8311171561071c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111a0945050505050565b6107836004803603602081101561077357600080fd5b50356001600160a01b03166111b8565b6040805192835260208301919091528051918290030190f35b610783600480360360208110156107b257600080fd5b50356001600160a01b03166111dd565b61051b600480360360408110156107d857600080fd5b50803590602001356111f6565b6106316112b8565b61066161134c565b6106316004803603602081101561080b57600080fd5b50356001600160a01b0316611352565b6106316113be565b61038b6004803603604081101561083957600080fd5b50803590602001356001600160a01b031661146b565b610631600480360360e081101561086557600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608082013581169160a081013582169160c090910135166114d0565b61038b600480360360808110156108b757600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611a32565b61038b611bb9565b6108ed611bc8565b604080519115158252519081900360200190f35b61051b611bee565b6106316004803603602081101561091f57600080fd5b810190602081018135600160201b81111561093957600080fd5b82018360208201111561094b57600080fd5b803590602001918460208302840111600160201b8311171561096c57600080fd5b509092509050611c63565b61038b6004803603604081101561098d57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156109b757600080fd5b8201836020820111156109c957600080fd5b803590602001918460018302840111600160201b831117156109ea57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611cbe945050505050565b61063160048036036060811015610a4157600080fd5b810190602081018135600160201b811115610a5b57600080fd5b820183602082011115610a6d57600080fd5b803590602001918460018302840111600160201b83111715610a8e57600080fd5b919350915080359060200135611e1f565b61038b60048036036020811015610ab557600080fd5b5035611f2d565b610ad960048036036020811015610ad257600080fd5b5035611f48565b604080516001600160a01b03909316835260208301919091528051918290030190f35b61063160048036036020811015610b1257600080fd5b810190602081018135600160201b811115610b2c57600080fd5b820183602082011115610b3e57600080fd5b803590602001918460018302840111600160201b83111715610b5f57600080fd5b509092509050612025565b61063160048036036020811015610b8057600080fd5b50356001600160a01b031661207b565b6108ed60048036036020811015610ba657600080fd5b503561216f565b61063160048036036040811015610bc357600080fd5b50803590602001356001600160a01b0316612193565b61038b60048036036020811015610bef57600080fd5b50356122f1565b61063160048036036020811015610c0c57600080fd5b810190602081018135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b50909250905061231b565b61063160048036036020811015610c7a57600080fd5b50356001600160a01b0316612371565b61038b60048036036040811015610ca057600080fd5b50803590602001356123c4565b61066160048036036020811015610cc357600080fd5b50356001600160a01b03166124a6565b61066160048036036020811015610ce957600080fd5b50356124c1565b600080610dc8878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610d695780518252601f199092019160209182019101610d4a565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b815260140195505050505050604051602081830303815290604052805190602001206124df565b9050610dd48184612530565b979650505050505050565b60008281526070602090815260408083208484529091529020546001600160a01b03165b92915050565b600080610e198787878787610cf0565b90506001600160a01b038116610e795760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610dd4878787878561261e565b6068546060906001600160a01b03163314610ea057600080fd5b6069805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f265780601f10610efb57610100808354040283529160200191610f26565b820191906000526020600020905b815481529060010190602001808311610f0957829003601f168201915b505050505090505b90565b6068546060906001600160a01b03163314610f4b57600080fd5b606c805480602002602001604051908101604052809291908181526020018280548015610f2657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f83575050505050905090565b606e8181548110610fb757fe5b6000918252602090912001546001600160a01b0316905081565b336001600160a01b0316826001600160a01b031663525564216040518163ffffffff1660e01b815260040160206040518083038186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b50516001600160a01b03161461109e5760408051600160e51b62461bcd02815260206004820152601d60248201527f4f6e6c79206973737565722063616e2073657420626f6e64207465726d000000604482015290519081900360640190fd5b6001600160a01b03909116600090815260716020526040902055565b33600090815260676020526040812054600160cb1b660acd2c286c2e6d0214806110ff575033600090815260676020526040902054600160ca1b66159a58509bdb9902145b6111535760408051600160e51b62461bcd02815260206004820152601660248201527f47657420636c69656e74203a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b50606d546001600160a01b031690565b6001600160a01b0381166000908152607160205260409020545b919050565b6001600160a01b031660009081526067602052604090206001015490565b60006111af858585853361261e565b95945050505050565b6001600160a01b0381166000908152606760205260409020600181015490545b915091565b6067602052600090815260409020805460019091015482565b6068546060906001600160a01b0316331461121057600080fd5b6000838152606b6020908152604080832085845282529182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156112ab5780601f10611280576101008083540402835291602001916112ab565b820191906000526020600020905b81548152906001019060200180831161128e57829003601f168201915b5050505050905092915050565b6112c0611bc8565b6113025760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b606e5490565b61135a611bc8565b61139c5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b600154610100900460ff16806113d757506113d7612752565b806113e5575060015460ff16155b61142357604051600160e51b62461bcd02815260040180806020018281038252602e8152602001806133a7602e913960400191505060405180910390fd5b600154610100900460ff1615801561144d576001805460ff1961ff00199091166101001716811790555b6114563361207b565b8015611468576001805461ff00191690555b50565b6000806114788484612758565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c949350505050565b6114d8611bc8565b61151a5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b606880546001600160a01b0319166001600160a01b03851617905560608685611541611bb9565b60408051602481019490945260448401929092526001600160a01b039081166064840152808716608484015280861660a4840152841660c4808401919091528151808403909101815260e490920190526020810180516001600160e01b0316600160e21b632274a71302179052905060006115bc8983611cbe565b905086600160e31b63086c2e6d02141561161857604080518981526020810189905281516001600160a01b038416927f49c2bdad6020b81dabafa7be5ba1d6b64dccc883841d724393e4a0242819bc34928290030190a261166e565b86600160e21b63109bdb9902141561166e57604080518981526020810189905281516001600160a01b038416927fdaec82b39e03602f1e7b1c03805276c348a0b9c50d3e83d4ae136f2bbb74137f928290030190a25b86600160e31b63086c2e6d02141561184d5760008681527f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d360205260409020546001600160a01b03161561178457604080518082018252600160cb1b660acd2c286c2e6d02815260208082018b81526001600160a01b0385166000908152606783528481209351845590516001909301929092558a8252606f90522054606e8054839290811061171a57fe5b6000918252602080832090910180546001600160a01b039485166001600160a01b0319918216179091558983527f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d39091526040909120805492841692909116919091179055611848565b604080518082018252600160cb1b660acd2c286c2e6d02815260208082018b81526001600160a01b038516600081815260678452858120945185559151600194850155606e80548e8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d39092529290922080549092161790555b611a27565b86600160e21b63109bdb99021415611a275760008681527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e48618160205260409020546001600160a01b03161561196357604080518082018252600160ca1b66159a58509bdb9902815260208082018b81526001600160a01b0385166000908152606783528481209351845590516001909301929092558a8252606f90522054606e805483929081106118f957fe5b6000918252602080832090910180546001600160a01b039485166001600160a01b0319918216179091558983527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819091526040909120805492841692909116919091179055611a27565b604080518082018252600160ca1b66159a58509bdb9902815260208082018b81526001600160a01b038516600081815260678452858120945185559151600194850155606e80548e8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819092529290922080549092161790555b505050505050505050565b33600090815260676020526040812054600160ca1b66159a58509bdb99021480611a745750611a5f611bb9565b6001600160a01b0316336001600160a01b0316145b611a7d57600080fd5b60408051602481018590526001600160a01b038616604482015233606482015260848082018590528251808303909101815260a49091019091526020810180516001600160e01b0316600160e01b63ef239721021790526000611ae08783611cbe565b60408051868152600160ca1b66159a58509bdb9902602082015281519293506001600160a01b038416927f59bcd02033e203f8af464062ce742d11a3358b7b8fd7e996b91d74bee929d7e5929181900390910190a26001600160a01b03811660008181526067602052604081207f566961426f6e64546f6b656e00000000000000000000000000000000000000009055606e805460018101825591527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a0180546001600160a01b03191690911790559695505050505050565b6034546001600160a01b031690565b6034546000906001600160a01b0316611bdf612791565b6001600160a01b031614905090565b6068546060906001600160a01b03163314611c0857600080fd5b606a805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f265780601f10610efb57610100808354040283529160200191610f26565b611c6b611bc8565b611cad5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b611cb9606c8383612892565b505050565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611e18576000826001600160a01b0316846040518082805190602001908083835b60208310611da15780518252601f199092019160209182019101611d82565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611e03576040519150601f19603f3d011682016040523d82523d6000602084013e611e08565b606091505b5050905080611e1657600080fd5b505b5092915050565b606d5433906000906001600160a01b031615611eb457606d5460408051600160e01b63442767330281526001600160a01b038581166004830152915191909216916344276733916024808301926060929190829003018186803b158015611e8557600080fd5b505afa158015611e99573d6000803e3d6000fd5b505050506040513d6060811015611eaf57600080fd5b505190505b80600160f41b610445021480611ed4575080600160d91b6420b236b4b702145b80611ef75750611ee2611bb9565b6001600160a01b0316826001600160a01b0316145b611f0057600080fd5b6000848152606b602090815260408083208684529091529020611f249087876128f5565b50505050505050565b6000908152607460205260409020546001600160a01b031690565b6000818152606f6020526040812054606e80548392839286926067928592918110611f6f57fe5b600091825260209182902001546001600160a01b031682520152508015612018576000848152606f6020526040902054606e80549091908110611fae57fe5b6000918252602080832090910154868352606f9091526040822054606e80546001600160a01b03909316936067939092908110611fe757fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205490935091506111d89050565b50600091508190506111d8565b61202d611bc8565b61206f5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b611cb9606a83836128f5565b600154610100900460ff16806120945750612094612752565b806120a2575060015460ff16155b6120e057604051600160e51b62461bcd02815260040180806020018281038252602e8152602001806133a7602e913960400191505060405180910390fd5b600154610100900460ff1615801561210a576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3801561216b576001805461ff00191690555b5050565b6000818152607360205260408120541561218b5750600161117d565b50600061117d565b606d5433906000906001600160a01b03161561222857606d5460408051600160e01b63442767330281526001600160a01b038581166004830152915191909216916344276733916024808301926060929190829003018186803b1580156121f957600080fd5b505afa15801561220d573d6000803e3d6000fd5b505050506040513d606081101561222357600080fd5b505190505b80600160f41b610445021480612248575080600160d91b6420b236b4b702145b8061226b5750612256611bb9565b6001600160a01b0316826001600160a01b0316145b61227457600080fd5b6000848152607360205260409020546122eb57607280546001810182557fdffbd64cc7c1a7eb27984335d9416d51137a03d3fabec7141025c62663253fe10185905554600085815260736020908152604080832093909355607490522080546001600160a01b0319166001600160a01b0385161790555b50505050565b6000606e828154811061230057fe5b6000918252602090912001546001600160a01b031692915050565b612323611bc8565b6123655760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b611cb9606983836128f5565b612379611bc8565b6123bb5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b61146881612795565b60008260676000606e606f600088815260200190815260200160002054815481106123eb57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190206001015414801561246757508160676000606e606f6000888152602001908152602001600020548154811061244057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054145b15610e03576000838152606f6020526040902054606e8054909190811061248a57fe5b6000918252602090912001546001600160a01b03169050610e03565b6001600160a01b031660009081526067602052604090205490565b607281815481106124ce57fe5b600091825260209091200154905081565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461254357506000610e03565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156125895760009350505050610e03565b8060ff16601b141580156125a157508060ff16601c14155b156125b25760009350505050610e03565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015612609573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008061262b8784612839565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b838110156126e15781810151838201526020016126c9565b50505050905090810190601f16801561270e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561272f57600080fd5b505af1158015612743573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b6001600160a01b0381166127dd57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806133616026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161284e9061296f565b601f1982820381018352601f909101166040529050600061286f8686612758565b9050808251602084016000f59250823b61288857600080fd5b5090949350505050565b8280548282559060005260206000209081019282156128e5579160200282015b828111156128e55781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906128b2565b506128f192915061297c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129365782800160ff19823516178555612963565b82800160010185558215612963579182015b82811115612963578235825591602001919060010190612948565b506128f19291506129a0565b6109a6806129bb83390190565b610f2e91905b808211156128f15780546001600160a01b0319168155600101612982565b610f2e91905b808211156128f157600081556001016129a656fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a7230582034533b05d459b3dbf337b7a7d2d52531278f283c3d79dabf04ce8525cf6aea470029608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c90029",
    "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023d5760003560e01c806388a365f41161013b578063baa796bd116100b8578063edf6a8ac1161007c578063edf6a8ac14610bf6578063f2fde38b14610c64578063f3458f1414610c8a578063f429f19b14610cad578063f6d1c27114610cd35761023d565b8063baa796bd14610afc578063c4d66de814610b6a578063d11322d414610b90578063d6a5aad814610bad578063e4b50cb814610bd95761023d565b8063ae9b71af116100ff578063ae9b71af14610909578063b3eeb5e214610977578063b6f7477514610a2b578063b946762914610a9f578063b96b200414610abc5761023d565b806388a365f41461084f5780638d5040cc146108a15780638da5cb5b146108dd5780638f32d59b146108e5578063968eb4b2146109015761023d565b80635fd4b08a116101c9578063715018a61161018d578063715018a6146107e557806378a89567146107ed578063805ef812146107f55780638129fc1c1461081b57806381ae1f5b146108235761023d565b80635fd4b08a146106735780636150864c14610699578063668151a71461075d5780636d46a1db1461079c578063708b0773146107c25761023d565b806340884c521161021057806340884c52146105905780634f64b2be146105e85780635810c6ce1461060557806359dc735c146106335780635af4730a1461063b5761023d565b8063290f8f56146102425780632ea77917146103a7578063332d6626146103ca5780633e18b01b14610513575b600080fd5b61038b600480360360a081101561025857600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561029257600080fd5b8201836020820111156102a457600080fd5b803590602001918460018302840111600160201b831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561031757600080fd5b82018360208201111561032957600080fd5b803590602001918460018302840111600160201b8311171561034a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cf0945050505050565b604080516001600160a01b039092168252519081900360200190f35b61038b600480360360408110156103bd57600080fd5b5080359060200135610ddf565b61038b600480360360a08110156103e057600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561041a57600080fd5b82018360208201111561042c57600080fd5b803590602001918460018302840111600160201b8311171561044d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561049f57600080fd5b8201836020820111156104b157600080fd5b803590602001918460018302840111600160201b831117156104d257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e09945050505050565b61051b610e86565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561055557818101518382015260200161053d565b50505050905090810190601f1680156105825780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610598610f31565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105d45781810151838201526020016105bc565b505050509050019250505060405180910390f35b61038b600480360360208110156105fe57600080fd5b5035610faa565b6106316004803603604081101561061b57600080fd5b506001600160a01b038135169060200135610fd1565b005b61038b6110ba565b6106616004803603602081101561065157600080fd5b50356001600160a01b0316611163565b60408051918252519081900360200190f35b6106616004803603602081101561068957600080fd5b50356001600160a01b0316611182565b61038b600480360360808110156106af57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156106e957600080fd5b8201836020820111156106fb57600080fd5b803590602001918460018302840111600160201b8311171561071c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111a0945050505050565b6107836004803603602081101561077357600080fd5b50356001600160a01b03166111b8565b6040805192835260208301919091528051918290030190f35b610783600480360360208110156107b257600080fd5b50356001600160a01b03166111dd565b61051b600480360360408110156107d857600080fd5b50803590602001356111f6565b6106316112b8565b61066161134c565b6106316004803603602081101561080b57600080fd5b50356001600160a01b0316611352565b6106316113be565b61038b6004803603604081101561083957600080fd5b50803590602001356001600160a01b031661146b565b610631600480360360e081101561086557600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608082013581169160a081013582169160c090910135166114d0565b61038b600480360360808110156108b757600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611a32565b61038b611bb9565b6108ed611bc8565b604080519115158252519081900360200190f35b61051b611bee565b6106316004803603602081101561091f57600080fd5b810190602081018135600160201b81111561093957600080fd5b82018360208201111561094b57600080fd5b803590602001918460208302840111600160201b8311171561096c57600080fd5b509092509050611c63565b61038b6004803603604081101561098d57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156109b757600080fd5b8201836020820111156109c957600080fd5b803590602001918460018302840111600160201b831117156109ea57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611cbe945050505050565b61063160048036036060811015610a4157600080fd5b810190602081018135600160201b811115610a5b57600080fd5b820183602082011115610a6d57600080fd5b803590602001918460018302840111600160201b83111715610a8e57600080fd5b919350915080359060200135611e1f565b61038b60048036036020811015610ab557600080fd5b5035611f2d565b610ad960048036036020811015610ad257600080fd5b5035611f48565b604080516001600160a01b03909316835260208301919091528051918290030190f35b61063160048036036020811015610b1257600080fd5b810190602081018135600160201b811115610b2c57600080fd5b820183602082011115610b3e57600080fd5b803590602001918460018302840111600160201b83111715610b5f57600080fd5b509092509050612025565b61063160048036036020811015610b8057600080fd5b50356001600160a01b031661207b565b6108ed60048036036020811015610ba657600080fd5b503561216f565b61063160048036036040811015610bc357600080fd5b50803590602001356001600160a01b0316612193565b61038b60048036036020811015610bef57600080fd5b50356122f1565b61063160048036036020811015610c0c57600080fd5b810190602081018135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b50909250905061231b565b61063160048036036020811015610c7a57600080fd5b50356001600160a01b0316612371565b61038b60048036036040811015610ca057600080fd5b50803590602001356123c4565b61066160048036036020811015610cc357600080fd5b50356001600160a01b03166124a6565b61066160048036036020811015610ce957600080fd5b50356124c1565b600080610dc8878787873060405160200180868152602001856001600160a01b03166001600160a01b031660601b8152601401846001600160a01b03166001600160a01b031660601b815260140183805190602001908083835b60208310610d695780518252601f199092019160209182019101610d4a565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b815260140195505050505050604051602081830303815290604052805190602001206124df565b9050610dd48184612530565b979650505050505050565b60008281526070602090815260408083208484529091529020546001600160a01b03165b92915050565b600080610e198787878787610cf0565b90506001600160a01b038116610e795760408051600160e51b62461bcd02815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b610dd4878787878561261e565b6068546060906001600160a01b03163314610ea057600080fd5b6069805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f265780601f10610efb57610100808354040283529160200191610f26565b820191906000526020600020905b815481529060010190602001808311610f0957829003601f168201915b505050505090505b90565b6068546060906001600160a01b03163314610f4b57600080fd5b606c805480602002602001604051908101604052809291908181526020018280548015610f2657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f83575050505050905090565b606e8181548110610fb757fe5b6000918252602090912001546001600160a01b0316905081565b336001600160a01b0316826001600160a01b031663525564216040518163ffffffff1660e01b815260040160206040518083038186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b50516001600160a01b03161461109e5760408051600160e51b62461bcd02815260206004820152601d60248201527f4f6e6c79206973737565722063616e2073657420626f6e64207465726d000000604482015290519081900360640190fd5b6001600160a01b03909116600090815260716020526040902055565b33600090815260676020526040812054600160cb1b660acd2c286c2e6d0214806110ff575033600090815260676020526040902054600160ca1b66159a58509bdb9902145b6111535760408051600160e51b62461bcd02815260206004820152601660248201527f47657420636c69656e74203a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b50606d546001600160a01b031690565b6001600160a01b0381166000908152607160205260409020545b919050565b6001600160a01b031660009081526067602052604090206001015490565b60006111af858585853361261e565b95945050505050565b6001600160a01b0381166000908152606760205260409020600181015490545b915091565b6067602052600090815260409020805460019091015482565b6068546060906001600160a01b0316331461121057600080fd5b6000838152606b6020908152604080832085845282529182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156112ab5780601f10611280576101008083540402835291602001916112ab565b820191906000526020600020905b81548152906001019060200180831161128e57829003601f168201915b5050505050905092915050565b6112c0611bc8565b6113025760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b606e5490565b61135a611bc8565b61139c5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b600154610100900460ff16806113d757506113d7612752565b806113e5575060015460ff16155b61142357604051600160e51b62461bcd02815260040180806020018281038252602e8152602001806133a7602e913960400191505060405180910390fd5b600154610100900460ff1615801561144d576001805460ff1961ff00199091166101001716811790555b6114563361207b565b8015611468576001805461ff00191690555b50565b6000806114788484612758565b600054604080516001600160f81b031960208083019190915230606090811b602184015260358301959095526055808301949094528251808303909401845260759091019091528151910120811b901c949350505050565b6114d8611bc8565b61151a5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b606880546001600160a01b0319166001600160a01b03851617905560608685611541611bb9565b60408051602481019490945260448401929092526001600160a01b039081166064840152808716608484015280861660a4840152841660c4808401919091528151808403909101815260e490920190526020810180516001600160e01b0316600160e21b632274a71302179052905060006115bc8983611cbe565b905086600160e31b63086c2e6d02141561161857604080518981526020810189905281516001600160a01b038416927f49c2bdad6020b81dabafa7be5ba1d6b64dccc883841d724393e4a0242819bc34928290030190a261166e565b86600160e21b63109bdb9902141561166e57604080518981526020810189905281516001600160a01b038416927fdaec82b39e03602f1e7b1c03805276c348a0b9c50d3e83d4ae136f2bbb74137f928290030190a25b86600160e31b63086c2e6d02141561184d5760008681527f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d360205260409020546001600160a01b03161561178457604080518082018252600160cb1b660acd2c286c2e6d02815260208082018b81526001600160a01b0385166000908152606783528481209351845590516001909301929092558a8252606f90522054606e8054839290811061171a57fe5b6000918252602080832090910180546001600160a01b039485166001600160a01b0319918216179091558983527f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d39091526040909120805492841692909116919091179055611848565b604080518082018252600160cb1b660acd2c286c2e6d02815260208082018b81526001600160a01b038516600081815260678452858120945185559151600194850155606e80548e8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527f725b1f02019c28ac763ea79e1ff934efc707f63e9b319f205fa7fd7c1ddb05d39092529290922080549092161790555b611a27565b86600160e21b63109bdb99021415611a275760008681527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e48618160205260409020546001600160a01b03161561196357604080518082018252600160ca1b66159a58509bdb9902815260208082018b81526001600160a01b0385166000908152606783528481209351845590516001909301929092558a8252606f90522054606e805483929081106118f957fe5b6000918252602080832090910180546001600160a01b039485166001600160a01b0319918216179091558983527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819091526040909120805492841692909116919091179055611a27565b604080518082018252600160ca1b66159a58509bdb9902815260208082018b81526001600160a01b038516600081815260678452858120945185559151600194850155606e80548e8452606f855286842081905594850190557f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a90930180546001600160a01b031990811685179091558a82527ff296d0245ee9f13beb062c173c79f5bf555e94b2a5108722d840fc530e4861819092529290922080549092161790555b505050505050505050565b33600090815260676020526040812054600160ca1b66159a58509bdb99021480611a745750611a5f611bb9565b6001600160a01b0316336001600160a01b0316145b611a7d57600080fd5b60408051602481018590526001600160a01b038616604482015233606482015260848082018590528251808303909101815260a49091019091526020810180516001600160e01b0316600160e01b63ef239721021790526000611ae08783611cbe565b60408051868152600160ca1b66159a58509bdb9902602082015281519293506001600160a01b038416927f59bcd02033e203f8af464062ce742d11a3358b7b8fd7e996b91d74bee929d7e5929181900390910190a26001600160a01b03811660008181526067602052604081207f566961426f6e64546f6b656e00000000000000000000000000000000000000009055606e805460018101825591527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a0180546001600160a01b03191690911790559695505050505050565b6034546001600160a01b031690565b6034546000906001600160a01b0316611bdf612791565b6001600160a01b031614905090565b6068546060906001600160a01b03163314611c0857600080fd5b606a805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f265780601f10610efb57610100808354040283529160200191610f26565b611c6b611bc8565b611cad5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b611cb9606c8383612892565b505050565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0604080516001600160a01b038316815290519194507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349925081900360200190a1825115611e18576000826001600160a01b0316846040518082805190602001908083835b60208310611da15780518252601f199092019160209182019101611d82565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611e03576040519150601f19603f3d011682016040523d82523d6000602084013e611e08565b606091505b5050905080611e1657600080fd5b505b5092915050565b606d5433906000906001600160a01b031615611eb457606d5460408051600160e01b63442767330281526001600160a01b038581166004830152915191909216916344276733916024808301926060929190829003018186803b158015611e8557600080fd5b505afa158015611e99573d6000803e3d6000fd5b505050506040513d6060811015611eaf57600080fd5b505190505b80600160f41b610445021480611ed4575080600160d91b6420b236b4b702145b80611ef75750611ee2611bb9565b6001600160a01b0316826001600160a01b0316145b611f0057600080fd5b6000848152606b602090815260408083208684529091529020611f249087876128f5565b50505050505050565b6000908152607460205260409020546001600160a01b031690565b6000818152606f6020526040812054606e80548392839286926067928592918110611f6f57fe5b600091825260209182902001546001600160a01b031682520152508015612018576000848152606f6020526040902054606e80549091908110611fae57fe5b6000918252602080832090910154868352606f9091526040822054606e80546001600160a01b03909316936067939092908110611fe757fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205490935091506111d89050565b50600091508190506111d8565b61202d611bc8565b61206f5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b611cb9606a83836128f5565b600154610100900460ff16806120945750612094612752565b806120a2575060015460ff16155b6120e057604051600160e51b62461bcd02815260040180806020018281038252602e8152602001806133a7602e913960400191505060405180910390fd5b600154610100900460ff1615801561210a576001805460ff1961ff00199091166101001716811790555b603480546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3801561216b576001805461ff00191690555b5050565b6000818152607360205260408120541561218b5750600161117d565b50600061117d565b606d5433906000906001600160a01b03161561222857606d5460408051600160e01b63442767330281526001600160a01b038581166004830152915191909216916344276733916024808301926060929190829003018186803b1580156121f957600080fd5b505afa15801561220d573d6000803e3d6000fd5b505050506040513d606081101561222357600080fd5b505190505b80600160f41b610445021480612248575080600160d91b6420b236b4b702145b8061226b5750612256611bb9565b6001600160a01b0316826001600160a01b0316145b61227457600080fd5b6000848152607360205260409020546122eb57607280546001810182557fdffbd64cc7c1a7eb27984335d9416d51137a03d3fabec7141025c62663253fe10185905554600085815260736020908152604080832093909355607490522080546001600160a01b0319166001600160a01b0385161790555b50505050565b6000606e828154811061230057fe5b6000918252602090912001546001600160a01b031692915050565b612323611bc8565b6123655760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b611cb9606983836128f5565b612379611bc8565b6123bb5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020613387833981519152604482015290519081900360640190fd5b61146881612795565b60008260676000606e606f600088815260200190815260200160002054815481106123eb57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190206001015414801561246757508160676000606e606f6000888152602001908152602001600020548154811061244057fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054145b15610e03576000838152606f6020526040902054606e8054909190811061248a57fe5b6000918252602090912001546001600160a01b03169050610e03565b6001600160a01b031660009081526067602052604090205490565b607281815481106124ce57fe5b600091825260209091200154905081565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461254357506000610e03565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156125895760009350505050610e03565b8060ff16601b141580156125a157508060ff16601c14155b156125b25760009350505050610e03565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015612609573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60008061262b8784612839565b604080516001600160a01b038316815290519192507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349919081900360200190a1604051600160e01b63cf7a1d770281526001600160a01b038781166004830190815287821660248401526060604484019081528751606485015287519285169363cf7a1d77938b938b938b939192909160840190602085019080838360005b838110156126e15781810151838201526020016126c9565b50505050905090810190601f16801561270e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561272f57600080fd5b505af1158015612743573d6000803e3d6000fd5b50929998505050505050505050565b303b1590565b604080516020808201949094526001600160a01b039290921660601b828201528051808303603401815260549092019052805191012090565b3390565b6001600160a01b0381166127dd57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806133616026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008060606040518060200161284e9061296f565b601f1982820381018352601f909101166040529050600061286f8686612758565b9050808251602084016000f59250823b61288857600080fd5b5090949350505050565b8280548282559060005260206000209081019282156128e5579160200282015b828111156128e55781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906128b2565b506128f192915061297c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129365782800160ff19823516178555612963565b82800160010185558215612963579182015b82811115612963578235825591602001919060010190612948565b506128f19291506129a0565b6109a6806129bb83390190565b610f2e91905b808211156128f15780546001600160a01b0319168155600101612982565b610f2e91905b808211156128f157600081556001016129a656fe608060405234801561001057600080fd5b50610986806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105a6945050505050565b34801561031257600080fd5b506101426106e6565b610323610711565b61033361032e610774565b610799565b565b61033d6107bd565b6001600160a01b0316336001600160a01b031614156103645761035f816107e2565b61036c565b61036c61031b565b50565b6103776107bd565b6001600160a01b0316336001600160a01b0316141561040f57610399836107e2565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b60006104266107bd565b6001600160a01b0316336001600160a01b0316141561044e57610447610774565b9050610456565b61045661031b565b90565b6104616107bd565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104c257604051600160e51b62461bcd0281526004018080602001828103825260368152602001806108ea6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104eb6107bd565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610822565b6000610520610774565b6001600160a01b03161461053357600080fd5b61053d83826105a6565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036000199091011461059d57fe5b61041782610822565b60006105b0610774565b6001600160a01b0316146105c357600080fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6000199091011461062357fe5b61062c82610846565b8051156106e2576000826001600160a01b0316826040518082805190602001908083835b6020831061066f5780518252601f199092019160209182019101610650565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106cf576040519150601f19603f3d011682016040523d82523d6000602084013e6106d4565b606091505b505090508061041757600080fd5b5050565b60006106f06107bd565b6001600160a01b0316336001600160a01b0316141561044e576104476107bd565b6107196107bd565b6001600160a01b0316336001600160a01b0316141561076c57604051600160e51b62461bcd0281526004018080602001828103825260328152602001806108b86032913960400191505060405180910390fd5b610333610333565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156107b8573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6107eb81610846565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61084f816108b1565b61088d57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610920603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a72305820acd86240912c703ba88ccefef3db77e88d3507353c7c194b0b27eed571ae96c900294f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a7230582034533b05d459b3dbf337b7a7d2d52531278f283c3d79dabf04ce8525cf6aea470029",
    "sourceMap": "483:8573:16:-;;;;;283:56:11;;;:::i;:::-;-1:-1:-1;;21:26;;;;;7:41;;87:2;69:12;;;65:26;61:2;54:38;266:79:11;;41:4:-1;30:16;;;;266:79:11;247:16;:98;483:8573:16;;;;;;;;;;:::o;:::-;;;;;;;",
    "deployedSourceMap": "483:8573:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:8573:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2132:408:11;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2132:408:11;;;-1:-1:-1;;;;;2132:408:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2132:408:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2132:408:11;;;;;;;;-1:-1:-1;2132:408:11;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;2132:408:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2132:408:11;;-1:-1:-1;2132:408:11;;-1:-1:-1;;;;;2132:408:11:i;:::-;;;;-1:-1:-1;;;;;2132:408:11;;;;;;;;;;;;;;3325:142:16;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3325:142:16;;;;;;;:::i;1288:337:11:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1288:337:11;;;-1:-1:-1;;;;;1288:337:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1288:337:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1288:337:11;;;;;;;;-1:-1:-1;1288:337:11;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1288:337:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1288:337:11;;-1:-1:-1;1288:337:11;;-1:-1:-1;;;;;1288:337:11:i;3936:144:16:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3936:144:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4732:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4732:137:16;;;;;;;;;;;;;;;;;1136:23;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1136:23:16;;:::i;8093:205::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8093:205:16;;;;;;;;:::i;:::-;;4511:213;;;:::i;4877:113::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4877:113:16;-1:-1:-1;;;;;4877:113:16;;:::i;:::-;;;;;;;;;;;;;;;;2529:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2529:116:16;-1:-1:-1;;;;;2529:116:16;;:::i;1104:180:11:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1104:180:11;;;-1:-1:-1;;;;;1104:180:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1104:180:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1104:180:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1104:180:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1104:180:11;;-1:-1:-1;1104:180:11;;-1:-1:-1;;;;;1104:180:11:i;2782:162:16:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2782:162:16;-1:-1:-1;;;;;2782:162:16;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;722:36;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;722:36:16;-1:-1:-1;;;;;722:36:16;;:::i;4242:212::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4242:212:16;;;;;;;:::i;1746:137:2:-;;;:::i;2316:103:16:-;;;:::i;8306:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8306:97:16;-1:-1:-1;;;;;8306:97:16;;:::i;2219:89::-;;;:::i;1629:499:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1629:499:11;;;;;;-1:-1:-1;;;;;1629:499:11;;:::i;5027:1822:16:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;5027:1822:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6882:661::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;6882:661:16;;;;;;;;;;;;;;;;;;;;;;:::i;959:77:2:-;;;:::i;1310:92::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;4088:146:16;;;:::i;7980:105::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7980:105:16;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7980:105:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7980:105:16;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;7980:105:16;;-1:-1:-1;7980:105:16;-1:-1:-1;7980:105:16;:::i;354:746:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;354:746:11;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;354:746:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;354:746:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;354:746:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;354:746:11;;-1:-1:-1;354:746:11;;-1:-1:-1;;;;;354:746:11:i;7780:192:16:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7780:192:16;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7780:192:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7780:192:16;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7780:192:16;;-1:-1:-1;7780:192:16;-1:-1:-1;7780:192:16;;;;;;;:::i;8924:127::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8924:127:16;;:::i;3537:391::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3537:391:16;;:::i;:::-;;;;-1:-1:-1;;;;;3537:391:16;;;;;;;;;;;;;;;;;;;;;7666:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7666:106:16;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7666:106:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7666:106:16;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;7666:106:16;;-1:-1:-1;7666:106:16;-1:-1:-1;7666:106:16;:::i;741:142:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;741:142:2;-1:-1:-1;;;;;741:142:2;;:::i;8725:191:16:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8725:191:16;;:::i;8411:306::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8411:306:16;;;;;;-1:-1:-1;;;;;8411:306:16;;:::i;2427:94::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2427:94:16;;:::i;7551:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7551:104:16;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7551:104:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7551:104:16;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;7551:104:16;;-1:-1:-1;7551:104:16;-1:-1:-1;7551:104:16;:::i;2032:107:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2032:107:2;-1:-1:-1;;;;;2032:107:2;;:::i;2952:290:16:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2952:290:16;;;;;;;:::i;2653:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2653:121:16;-1:-1:-1;;;;;2653:121:16;;:::i;1539:27::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1539:27:16;;:::i;2132:408:11:-;2264:7;2279:15;2297:170;2400:5;2407:6;2415;2423:5;2438:4;2372:81;;;;;;;;;;;-1:-1:-1;;;;;2372:81:11;-1:-1:-1;;;;;2372:81:11;;;;;;;;-1:-1:-1;;;;;2372:81:11;-1:-1:-1;;;;;2372:81:11;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2372:81:11;;;;;;;-1:-1:-1;;;;;2372:81:11;-1:-1:-1;;;;;2372:81:11;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2372:81:11;;;2353:108;;;;;;2297:48;:170::i;:::-;2279:188;;2481:54;2515:7;2524:10;2481:33;:54::i;:::-;2474:61;2132:408;-1:-1:-1;;;;;;;2132:408:11:o;3325:142:16:-;3404:7;3430:18;;;:7;:18;;;;;;;;:29;;;;;;;;;-1:-1:-1;;;;;3430:29:16;3325:142;;;;;:::o;1288:337:11:-;1418:7;1433:14;1450:51;1460:5;1467:6;1475;1483:5;1490:10;1450:9;:51::i;:::-;1433:68;-1:-1:-1;;;;;;1515:20:11;;1507:50;;;;;-1:-1:-1;;;;;1507:50:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570;1583:5;1590:6;1598;1606:5;1613:6;1570:12;:50::i;3936:144:16:-;4032:9;;3985:13;;-1:-1:-1;;;;;4032:9:16;4018:10;:23;4010:32;;;;;;4060:12;4053:19;;;;;;;;;;;;;-1:-1:-1;;4053:19:16;;;;;;;;;;;;;;;;;;;;;;;;;;;4060:12;4053:19;;4060:12;4053:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3936:144;;:::o;4732:137::-;4826:9;;4776:16;;-1:-1:-1;;;;;4826:9:16;4812:10;:23;4804:32;;;;;;4854:7;4847:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4847:14:16;;;;;;;;;;;;;;;;;;;;;;4732:137;:::o;1136:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1136:23:16;;-1:-1:-1;1136:23:16;:::o;8093:205::-;8211:10;-1:-1:-1;;;;;8177:44:16;8186:10;-1:-1:-1;;;;;8177:30:16;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8177:32:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8177:32:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8177:32:16;-1:-1:-1;;;;;8177:44:16;;8169:86;;;;;-1:-1:-1;;;;;8169:86:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8266:16:16;;;;;;;:4;:16;;;;;:24;8093:205::o;4511:213::-;4587:10;4554:7;4581:17;;;:5;:17;;;;;:27;-1:-1:-1;;;;;4581:40:16;;:84;;-1:-1:-1;4631:10:16;4625:17;;;;:5;:17;;;;;:27;-1:-1:-1;;;;;4625:40:16;4581:84;4573:119;;;;;-1:-1:-1;;;;;4573:119:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4710:6:16;;-1:-1:-1;;;;;4710:6:16;4511:213;:::o;4877:113::-;-1:-1:-1;;;;;4966:16:16;;4940:7;4966:16;;;:4;:16;;;;;;4877:113;;;;:::o;2529:116::-;-1:-1:-1;;;;;2615:17:16;2588:7;2615:17;;;:5;:17;;;;;:22;;;;2529:116::o;1104:180:11:-;1203:7;1225:54;1238:5;1245:6;1253;1261:5;1268:10;1225:12;:54::i;:::-;1218:61;1104:180;-1:-1:-1;;;;;1104:180:11:o;2782:162:16:-;-1:-1:-1;;;;;2884:17:16;;2848:7;2884:17;;;:5;:17;;;;;:22;;;;2908:27;;2782:162;;;;:::o;722:36::-;;;;;;;;;;;;;;;;;;;:::o;4242:212::-;4379:9;;4332:13;;-1:-1:-1;;;;;4379:9:16;4365:10;:23;4357:32;;;;;;4407:27;;;;:13;:27;;;;;;;;:39;;;;;;;;;4400:46;;;;;;-1:-1:-1;;4400:46:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4407:39;;4400:46;;4407:39;4400:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4242:212;;;;:::o;1746:137:2:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;-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;2316:103:16:-;2398:6;:13;2316:103;:::o;8306:97::-;1163:9:2;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:2;;;;;;;;;;;;;;;8379:6:16;:16;;-1:-1:-1;;;;;;8379:16:16;-1:-1:-1;;;;;8379:16:16;;;;;;;;;;8306:97::o;2219:89::-;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;1151:13;1170:80;;;;1213:4;1198:19;;-1:-1:-1;;;;1198:19:4;;;;;1225:18;;;;;1170:80;2270:30:16;2289:10;2270:18;:30::i;:::-;1268:14:4;1264:55;;;1292:12;:20;;-1:-1:-1;;1292:20:4;;;1264:55;2219:89:16;:::o;1629:499:11:-;1712:7;1877:12;1892:24;1901:5;1908:7;1892:8;:24::i;:::-;1922:18;2045:16;1960:109;;;-1:-1:-1;;;;;;1960:109:11;;;;;;;;2016:4;1960:109;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1960:109:11;;;;;;;1943:132;;;;;2105:16;;2089:34;;;1629:499;-1:-1:-1;;;;1629:499:11:o;5027:1822:16:-;1163:9:2;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:2;;;;;;;;;;;;;;;5203:9:16;:19;;-1:-1:-1;;;;;;5203:19:16;-1:-1:-1;;;;;5203:19:16;;;;;5233:21;5343:9;5353:13;5367:7;:5;:7::i;:::-;5257:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5257:138:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5257:138:16;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;5257:138:16;-1:-1:-1;;5451:32:16;5465:7;5257:138;5451:13;:32::i;:::-;5433:50;;5497:9;-1:-1:-1;;;;;5497:17:16;5494:194;;;5534:48;;;;;;;;;;;;;;-1:-1:-1;;;;;5534:48:16;;;;;;;;;;;5494:194;;;5601:9;-1:-1:-1;;;;;5601:19:16;5598:90;;;5640:48;;;;;;;;;;;;;;-1:-1:-1;;;;;5640:48:16;;;;;;;;;;;5598:90;5704:9;-1:-1:-1;;;;;5704:19:16;5701:1141;;;5785:3;5742:33;;;:18;;:33;:18;:33;;;-1:-1:-1;;;;;5742:33:16;:47;5739:514;;5826:25;;;;;;;;-1:-1:-1;;;;;5826:25:16;;;;;;;;;-1:-1:-1;;;;;5809:14:16;;-1:-1:-1;5809:14:16;;;:5;:14;;;;;:42;;;;;;;;;;;;;;5877:21;;;:10;:21;;;;5870:6;:29;;5815:7;;5877:21;5870:29;;;;;;;;;;;;;;;;;:39;;-1:-1:-1;;;;;5870:39:16;;;-1:-1:-1;;;;;;5870:39:16;;;;;;;5928:33;;;:18;:33;;;:18;:33;;;:43;;;;;;;;;;;;;;;5739:514;;;6041:25;;;;;;;;-1:-1:-1;;;;;6041:25:16;;;;;;;;;-1:-1:-1;;;;;6024:14:16;;-1:-1:-1;6024:14:16;;;:5;:14;;;;;:42;;;;;;;;;;;6107:6;:13;;6085:21;;;:10;:21;;;;;:35;;;23:18:-1;;;45:23;;6139:20:16;;;;;;-1:-1:-1;;;;;;6139:20:16;;;;;;;;6194:33;;;:18;:33;;;;;;;:43;;;;;;;;5739:514;5701:1141;;;6282:9;-1:-1:-1;;;;;6282:19:16;6279:563;;;6363:3;6320:33;;;:18;;:33;:18;:33;;;-1:-1:-1;;;;;6320:33:16;:47;6317:514;;6404:25;;;;;;;;-1:-1:-1;;;;;6404:25:16;;;;;;;;;-1:-1:-1;;;;;6387:14:16;;-1:-1:-1;6387:14:16;;;:5;:14;;;;;:42;;;;;;;;;;;;;;6455:21;;;:10;:21;;;;6448:6;:29;;6393:7;;6455:21;6448:29;;;;;;;;;;;;;;;;;:39;;-1:-1:-1;;;;;6448:39:16;;;-1:-1:-1;;;;;;6448:39:16;;;;;;;6506:33;;;:18;:33;;;:18;:33;;;:43;;;;;;;;;;;;;;;6317:514;;;6619:25;;;;;;;;-1:-1:-1;;;;;6619:25:16;;;;;;;;;-1:-1:-1;;;;;6602:14:16;;-1:-1:-1;6602:14:16;;;:5;:14;;;;;:42;;;;;;;;;;;6685:6;:13;;6663:21;;;:10;:21;;;;;:35;;;23:18:-1;;;45:23;;6717:20:16;;;;;;-1:-1:-1;;;;;;6717:20:16;;;;;;;;6772:33;;;:18;:33;;;;;;;:43;;;;;;;;6317:514;1219:1:2;;5027:1822:16;;;;;;;:::o;6882:661::-;7026:10;6993:7;7020:17;;;:5;:17;;;;;:27;-1:-1:-1;;;;;7020:40:16;;:63;;;7076:7;:5;:7::i;:::-;-1:-1:-1;;;;;7064:19:16;:10;-1:-1:-1;;;;;7064:19:16;;7020:63;7012:72;;;;;;7121:114;;;;;;;;;-1:-1:-1;;;;;7121:114:16;;;;;;7211:10;7121:114;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7121:114:16;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;-1:-1;7290:32:16;7304:7;7121:114;7290:13;:32::i;:::-;7338:44;;;;;;-1:-1:-1;;;;;7338:44:16;;;;;;7273:49;;-1:-1:-1;;;;;;7338:44:16;;;;;;;;;;;;;;-1:-1:-1;;;;;7419:13:16;;7403;7419;;;:5;:13;;;;;7443:28;;;7482:6;27:10:-1;;39:1;23:18;;45:23;;7482:19:16;;;;;;-1:-1:-1;;;;;;7482:19:16;;;;;;7419:13;6882:661;-1:-1:-1;;;;;;6882:661:16: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;4088:146:16:-;4185:9;;4138:13;;-1:-1:-1;;;;;4185:9:16;4171:10;:23;4163:32;;;;;;4213:13;4206:20;;;;;;;;;;;;;-1:-1:-1;;4206:20:16;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:13;4206:20;;4213:13;4206:20;;;;;;;;;;;;;;;;;;;;;;;;7980:105;1163:9:2;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:2;;;;;;;;;;;;;;;8059:18:16;:7;8069:8;;8059:18;:::i;:::-;;7980:105;;:::o;354:746:11:-;429:13;588:19;618:6;610:15;;588:37;;667:4;661:11;693:66;686:5;679:81;792:11;785:4;778:5;774:16;767:37;836:66;829:4;822:5;818:16;811:92;936:4;929:5;926:1;919:22;962:28;;;-1:-1:-1;;;;;962:28:11;;;;;;910:31;;-1:-1:-1;962:28:11;;-1:-1:-1;962:28:11;;;;;;;1000:12;;:16;997:95;;1027:12;1044:5;-1:-1:-1;;;;;1044:10:11;1055:5;1044:17;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1044:17:11;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1026:35:11;;;1077:7;1069:16;;;;;;997:95;;354:746;;;;;:::o;7780:192:16:-;2039:6;;7884:10;;2008:12;;-1:-1:-1;;;;;2039:6:16;:20;2036:89;;2102:6;;2087:38;;;-1:-1:-1;;;;;2087:38:16;;-1:-1:-1;;;;;2087:38:16;;;;;;;;;2102:6;;;;;2087:30;;:38;;;;;;;;;;;;;;2102:6;2087:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2087:38:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2087:38:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2087:38:16;;-1:-1:-1;2036:89:16;2144:4;-1:-1:-1;;;;;2144:10:16;:27;;;;2158:4;-1:-1:-1;;;;;2158:13:16;2144:27;:46;;;;2183:7;:5;:7::i;:::-;-1:-1:-1;;;;;2175:15:16;:6;-1:-1:-1;;;;;2175:15:16;;2144:46;2136:55;;;;;;7916:28;;;;:13;:28;;;;;;;;:41;;;;;;;;:48;;7960:4;;7916:48;:::i;:::-;;7780:192;;;;;;:::o;8924:127::-;8991:7;9017:26;;;:15;:26;;;;;;-1:-1:-1;;;;;9017:26:16;;8924:127::o;3537:391::-;3606:7;3679:21;;;:10;:21;;;;;;3672:6;:29;;3606:7;;;;3709:9;;3666:5;;3606:7;;3672:6;:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3672:29:16;3666:36;;;;-1:-1:-1;3760:5:16;3757:163;;;3795:21;;;;:10;:21;;;;;;3788:6;:29;;:6;;3795:21;3788:29;;;;;;;;;;;;;;;;;;3832:21;;;:10;:21;;;;;;;3825:6;:29;;-1:-1:-1;;;;;3788:29:16;;;;3819:5;;3788:29;;3832:21;3825:29;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3825:29:16;3819:36;;;;;;;;;;;;:46;3780:86;;-1:-1:-1;3819:46:16;-1:-1:-1;3780:86:16;;-1:-1:-1;3780:86:16;3757:163;-1:-1:-1;3911:3:16;;-1:-1:-1;3911:3:16;;-1:-1:-1;3895:25:16;;7666:106;1163:9:2;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:2;;;;;;;;;;;;;;;7744:20:16;:13;7760:4;;7744:20;:::i;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;1151:13;1170:80;;;;1213:4;1198:19;;-1:-1:-1;;;;1198:19: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;;;1292:12;:20;;-1:-1:-1;;1292:20:4;;;1264:55;741:142:2;;:::o;8725:191:16:-;8796:4;8815:24;;;:13;:24;;;;;;:26;8812:96;;-1:-1:-1;8863:4:16;8856:11;;8812:96;-1:-1:-1;8903:5:16;8896:12;;8411:306;2039:6;;8483:10;;2008:12;;-1:-1:-1;;;;;2039:6:16;:20;2036:89;;2102:6;;2087:38;;;-1:-1:-1;;;;;2087:38:16;;-1:-1:-1;;;;;2087:38:16;;;;;;;;;2102:6;;;;;2087:30;;:38;;;;;;;;;;;;;;2102:6;2087:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2087:38:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2087:38:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2087:38:16;;-1:-1:-1;2036:89:16;2144:4;-1:-1:-1;;;;;2144:10:16;:27;;;;2158:4;-1:-1:-1;;;;;2158:13:16;2144:27;:46;;;;2183:7;:5;:7::i;:::-;-1:-1:-1;;;;;2175:15:16;:6;-1:-1:-1;;;;;2175:15:16;;2144:46;2136:55;;;;;;8518:24;;;;:13;:24;;;;;;8515:195;;8561:10;27::-1;;39:1;23:18;;45:23;;8561:26:16;;;;;8629:17;-1:-1:-1;8602:24:16;;;:13;8561:26;8602:24;;;;;;;:44;;;;8661:15;:26;;;:37;;-1:-1:-1;;;;;;8661:37:16;-1:-1:-1;;;;;8661:37:16;;;;;8515:195;8411:306;;;;:::o;2427:94::-;2478:7;2504:6;2511:1;2504:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2504:9:16;;2427:94;-1:-1:-1;;2427:94:16:o;7551:104::-;1163:9:2;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:2;;;;;;;;;;;;;;;7628:19:16;:12;7643:4;;7628:19;:::i;2032:107:2:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:2;;;;;;;;;;;;;;;2104:28;2123:8;2104:18;:28::i;2952:290:16:-;3040:7;3107:9;3062:5;:36;3068:6;3075:10;:21;3086:9;3075:21;;;;;;;;;;;;3068:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3068:29:16;3062:36;;;;;;;;;;;;3068:29;3062:41;;:54;:117;;;;;3170:9;3120:5;:36;3126:6;3133:10;:21;3144:9;3133:21;;;;;;;;;;;;3126:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3126:29:16;3120:36;;;;;;;;;;;;:46;:59;3062:117;3059:175;;;3212:21;;;;:10;:21;;;;;;3205:6;:29;;:6;;3212:21;3205:29;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3205:29:16;;-1:-1:-1;3198:36:16;;2653:121;-1:-1:-1;;;;;2739:17:16;2712:7;2739:17;;;:5;:17;;;;;:27;;2653:121::o;1539:27::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1539:27:16;:::o;3142:265:5:-;3341:58;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3341:58:5;;;;;;;3331:69;;;;;;3142:265::o;1101:1891::-;1179:7;1240:9;:16;1260:2;1240:22;1236:72;;-1:-1:-1;1294:1:5;1278:19;;1236:72;1658:4;1643:20;;1637:27;1703:4;1688:20;;1682:27;1756:4;1741:20;;1735:27;1374:9;1727:36;2674:66;2661:79;;2657:127;;;2771:1;2756:17;;;;;;;2657:127;2798:1;:7;;2803:2;2798:7;;:18;;;;;2809:1;:7;;2814:2;2809:7;;2798:18;2794:66;;;2847:1;2832:17;;;;;;;2794:66;2961:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2961:24:5;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2961:24:5;;-1:-1:-1;;2961:24:5;;;1101:1891;-1:-1:-1;;;;;;;1101:1891:5:o;2544:329:11:-;2668:7;2683:43;2729:28;2742:5;2749:7;2729:12;:28::i;:::-;2768;;;-1:-1:-1;;;;;2768:28:11;;;;;;2683:74;;-1:-1:-1;2768:28:11;;;;;;;;;;2802:39;;-1:-1:-1;;;;;2802:39:11;;-1:-1:-1;;;;;2802:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;;2819:6;;2827;;2835:5;;2802:39;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2802:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2802:39:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2862:5:11;;2544:329;-1:-1:-1;;;;;;;;;2544:329:11:o;1409:498:4:-;1820:4;1864:17;1895:7;1409:498;:::o;3356:144:11:-;3461:32;;;;;;;;;;;-1:-1:-1;;;;;3461:32:11;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;3461:32:11;;;;;;3451:43;;;;;;3356:144::o;867:96:0:-;946:10;867:96;:::o;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;2877:475:11:-;2949:37;2994:20;3020:17;3040:56;;;;;;;;:::i;:::-;-1:-1:-1;;21:26;;;;;7:41;;87:2;69:12;;;65:26;61:2;54:38;34:5;-1:-1;3102:12:11;3117:24;3126:5;3133:7;3117:8;:24::i;:::-;3102:39;;3214:4;3207;3201:11;3194:4;3188;3184:15;3181:1;3173:46;3165:54;;3248:4;3236:17;3226:2;;3275:1;3272;3265:12;3226:2;-1:-1:-1;3342:4:11;;2877:475;-1:-1:-1;;;;2877:475:11:o;483:8573:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;483:8573:16;-1:-1:-1;;;;;483:8573:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;483:8573:16;;;-1:-1:-1;483:8573:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;483:8573:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;483:8573:16;;;-1:-1:-1;483:8573:16;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;483:8573:16;;;;;;;;;;;;;;;;;;;;;;;;",
    "source": "// (c) Kallol Borah, 2020\r\n// Implementation of the Via cash and bond factory\r\n// SPDX-License-Identifier: MIT\r\n\r\npragma solidity 0.5.7;\r\n\r\nimport \"./interfaces/ViaFactory.sol\";\r\nimport \"./interfaces/ViaToken.sol\";\r\nimport \"./interfaces/VerifiedClient.sol\";\r\nimport \"@openzeppelin/upgrades/contracts/Initializable.sol\";\r\nimport \"@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\";\r\n\r\ncontract Factory is ViaFactory, ProxyFactory, Initializable, Ownable {\r\n\r\n    //data structure for token proxies\r\n    struct via{\r\n        bytes32 tokenType;\r\n        bytes32 name;        \r\n    }\r\n\r\n    //addresses of all Via proxies\r\n    mapping(address => via) public token;\r\n\r\n    //Via oracle url address\r\n    address ViaOracle;\r\n    string ViaOracleUrl;\r\n\r\n    //Payout url\r\n    string FiatPayoutUrl;\r\n\r\n    //Crypto data url\r\n    mapping(bytes32 => mapping(bytes32 => string)) CryptoDataUrl;\r\n\r\n    //Oracle address\r\n    address[] oracles;\r\n\r\n    //Verified accounts client\r\n    address client;    \r\n\r\n    //token index and position in index\r\n    address[] public tokens;\r\n\r\n    //mapping token name (currency) to index position \r\n    mapping(bytes32 => uint256) private tokenIndex;\r\n\r\n    //list of token type to token currency to product issuers\r\n    mapping(bytes32 => mapping(bytes32 => address)) issuers;\r\n\r\n    //mapping bond token to term in seconds\r\n    mapping(address => uint256) private term;\r\n\r\n    //storing supporting ERC20 tokens\r\n    bytes32[] public currencies;\r\n    mapping(bytes32 => uint256) private currencyIndex;\r\n    mapping(bytes32 => address) private currencyAddress;\r\n\r\n    event CashIssuerCreated(address indexed issuer, bytes32 tokenName, bytes32 tokenType);\r\n    event BondIssuerCreated(address indexed issuer, bytes32 tokenName, bytes32 tokenType);\r\n    event TokenCreated(address indexed token, bytes32 tokenName, bytes32 tokenType);\r\n\r\n    modifier onlyManager(address sender){\r\n        bytes32 role = \"\";\r\n        if(client!=address(0x0))\r\n            (role, , ) = VerifiedClient(client).getRole(sender);\r\n        require(role==\"DP\" || role==\"Admin\" || sender==owner());\r\n        _;\r\n    }\r\n\r\n    function initialize() public initializer{\r\n        Ownable.initialize(msg.sender);\r\n    }\r\n\r\n    function getTokenCount() external view returns(uint tokenCount) {\r\n        return tokens.length;\r\n    }\r\n\r\n    function getToken(uint256 n) external view returns(address){\r\n        return tokens[n];\r\n    }\r\n\r\n    function getName(address viaAddress) external view returns(bytes32) {\r\n        return token[viaAddress].name;\r\n    }\r\n\r\n    function getType(address viaAddress) external view returns(bytes32) {\r\n        return token[viaAddress].tokenType;\r\n    }\r\n\r\n    function getNameAndType(address viaAddress) external view returns(bytes32, bytes32){\r\n        return (token[viaAddress].name, token[viaAddress].tokenType);\r\n    }\r\n\r\n    function getTokenByNameType(bytes32 tokenName, bytes32 tokenType) external view returns(address){\r\n        if(token[tokens[tokenIndex[tokenName]]].name == tokenName && token[tokens[tokenIndex[tokenName]]].tokenType == tokenType)\r\n                return tokens[tokenIndex[tokenName]];\r\n    }\r\n\r\n    //retrieve token product issuer address for given token name and type\r\n    function getIssuer(bytes32 tokenType, bytes32 tokenName) external view returns(address){\r\n        return issuers[tokenType][tokenName];\r\n    }\r\n\r\n    //retrieves address and type of token for name specified\r\n    function getAddressAndType(bytes32 tokenName) external view returns (address, bytes32){\r\n        bool found = false;\r\n        if(token[tokens[tokenIndex[tokenName]]].name==tokenName)\r\n            found == true;\r\n        if(found)\r\n            return (tokens[tokenIndex[tokenName]], token[tokens[tokenIndex[tokenName]]].tokenType);\r\n        else\r\n            return (address(0x0), \"\");\r\n    }\r\n\r\n    function getViaOracleUrl() external view returns(string memory){\r\n        require(msg.sender == ViaOracle);\r\n        return ViaOracleUrl;\r\n    }\r\n\r\n    function getFiatPayoutUrl() external view returns(string memory){\r\n        require(msg.sender == ViaOracle);\r\n        return FiatPayoutUrl;\r\n    }\r\n\r\n    function getCryptoDataUrl(bytes32 fromCurrency, bytes32 toCurrency) external view returns(string memory){\r\n        require(msg.sender == ViaOracle);\r\n        return CryptoDataUrl[fromCurrency][toCurrency];\r\n    }\r\n\r\n    //get Verified client address for AML check\r\n    function getClient() external view returns(address){\r\n        require(token[msg.sender].tokenType == \"ViaCash\" || token[msg.sender].tokenType == \"ViaBond\", 'Get client : FORBIDDEN');\r\n        return client;\r\n    }\r\n\r\n    function getOracles() external view returns(address[] memory){\r\n        require(msg.sender == ViaOracle);\r\n        return oracles;\r\n    }\r\n\r\n    function getBondTerm(address _bondToken) external view returns(uint256){\r\n        return term[_bondToken];\r\n    }\r\n\r\n    //token issuer factory \r\n    function createIssuer(address _target, bytes32 tokenName, bytes32 tokenType, bytes32 tokenCurrency, address _oracle, address _token, address _fee) onlyOwner external{\r\n        ViaOracle = _oracle;\r\n        bytes memory _payload = abi.encodeWithSignature(\"initialize(bytes32,bytes32,address,address,address,address)\",tokenName,tokenCurrency,owner(),_oracle,_token,_fee);\r\n\r\n        // Deploy proxy\r\n        address _issuer = deployMinimal(_target, _payload);\r\n        if(tokenType==\"Cash\")\r\n            emit CashIssuerCreated(_issuer, tokenName, tokenType);\r\n        else if(tokenType == \"Bond\")\r\n            emit BondIssuerCreated(_issuer, tokenName, tokenType);\r\n\r\n        if(tokenType == \"Cash\"){\r\n            if(issuers[\"ViaCash\"][tokenCurrency]!=address(0x0)){\r\n                token[_issuer] = via(\"ViaCash\", tokenName);\r\n                tokens[tokenIndex[tokenName]] = _issuer;\r\n                issuers[\"ViaCash\"][tokenCurrency] = _issuer;\r\n            }\r\n            else{\r\n                token[_issuer] = via(\"ViaCash\", tokenName);\r\n                tokenIndex[tokenName]=tokens.length;\r\n                tokens.push(_issuer);                \r\n                issuers[\"ViaCash\"][tokenCurrency] = _issuer;\r\n            }\r\n        }\r\n        else if(tokenType == \"Bond\"){\r\n            if(issuers[\"ViaBond\"][tokenCurrency]!=address(0x0)){\r\n                token[_issuer] = via(\"ViaBond\", tokenName);\r\n                tokens[tokenIndex[tokenName]] = _issuer;\r\n                issuers[\"ViaBond\"][tokenCurrency] = _issuer;\r\n            }\r\n            else{\r\n                token[_issuer] = via(\"ViaBond\", tokenName);\r\n                tokenIndex[tokenName]=tokens.length;\r\n                tokens.push(_issuer);                \r\n                issuers[\"ViaBond\"][tokenCurrency] = _issuer;\r\n            }\r\n        }\r\n    }\r\n    \r\n    //token factory\r\n    function createToken(address _target, address issuer, bytes32 tokenName, bytes32 tokenSymbol) external returns(address){\r\n        require(token[msg.sender].tokenType == \"ViaBond\" || msg.sender==owner());\r\n\r\n        bytes memory _payload = abi.encodeWithSignature(\"initialize(bytes32,address,address,bytes32)\", tokenName, issuer, msg.sender, tokenSymbol);\r\n\r\n        // Deploy proxy\r\n        address _token = deployMinimal(_target, _payload);\r\n        emit TokenCreated(_token, tokenSymbol, \"ViaBond\");\r\n        \r\n        via storage t = token[_token];\r\n        t.tokenType = \"ViaBondToken\";\r\n        tokens.push(_token);\r\n        \r\n        return _token;\r\n    }\r\n\r\n    function setViaOracleUrl(string calldata _url) onlyOwner external {\r\n        ViaOracleUrl = _url;\r\n    }   \r\n\r\n    function setFiatPayoutUrl(string calldata _url) onlyOwner external {\r\n        FiatPayoutUrl = _url;\r\n    }\r\n\r\n    function setCryptoDataURL(string calldata _url, bytes32 _fromCurrency, bytes32 _toCurrency) onlyManager(msg.sender) external {\r\n        CryptoDataUrl[_fromCurrency][_toCurrency] = _url;\r\n    }\r\n\r\n    function setOracles(address[] calldata _oracles) onlyOwner external {\r\n        oracles = _oracles;\r\n    }\r\n\r\n    function setBondTerm(address _bondToken, uint256 _term) external {\r\n        require(ViaToken(_bondToken).getIssuer()==msg.sender, \"Only issuer can set bond term\");\r\n        term[_bondToken] = _term;\r\n    }\r\n\r\n    function setClientAddress(address _client) onlyOwner external {\r\n        client = _client;\r\n    }\r\n\r\n    function supportTokens(bytes32 _currency, address _address) onlyManager(msg.sender) external {\r\n        if(currencyIndex[_currency]==0){\r\n            currencies.push(_currency);\r\n            currencyIndex[_currency] = currencies.length;\r\n            currencyAddress[_currency] = _address;\r\n        }\r\n    }\r\n\r\n    function checkSupportForToken(bytes32 _currency) external view returns(bool){\r\n        if(currencyIndex[_currency]>0)\r\n            return true;\r\n        else\r\n            return false;\r\n    }\r\n\r\n    function getCurrencyToken(bytes32 _currency) external view returns(address){\r\n        return currencyAddress[_currency];\r\n    }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n",
    "sourcePath": "D:\\Code\\verified-payments\\contracts\\Factory.sol",
    "ast": {
        "absolutePath": "project:/contracts/Factory.sol",
        "exportedSymbols": {
            "Factory": [
                6629
            ]
        },
        "id": 6630,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 5752,
                "literals": [
                    "solidity",
                    "0.5",
                    ".7"
                ],
                "nodeType": "PragmaDirective",
                "src": "114:22:16"
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaFactory.sol",
                "file": "./interfaces/ViaFactory.sol",
                "id": 5753,
                "nodeType": "ImportDirective",
                "scope": 6630,
                "sourceUnit": 8403,
                "src": "140:37:16",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ViaToken.sol",
                "file": "./interfaces/ViaToken.sol",
                "id": 5754,
                "nodeType": "ImportDirective",
                "scope": 6630,
                "sourceUnit": 8500,
                "src": "179:35:16",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                "file": "./interfaces/VerifiedClient.sol",
                "id": 5755,
                "nodeType": "ImportDirective",
                "scope": 6630,
                "sourceUnit": 8023,
                "src": "216:41:16",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                "id": 5756,
                "nodeType": "ImportDirective",
                "scope": 6630,
                "sourceUnit": 479,
                "src": "259:60:16",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                "file": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                "id": 5757,
                "nodeType": "ImportDirective",
                "scope": 6630,
                "sourceUnit": 1225,
                "src": "321:74:16",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "id": 5758,
                "nodeType": "ImportDirective",
                "scope": 6630,
                "sourceUnit": 341,
                "src": "397:82:16",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 5759,
                            "name": "ViaFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 8402,
                            "src": "503:10:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ViaFactory_$8402",
                                "typeString": "contract ViaFactory"
                            }
                        },
                        "id": 5760,
                        "nodeType": "InheritanceSpecifier",
                        "src": "503:10:16"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 5761,
                            "name": "ProxyFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1224,
                            "src": "515:12:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ProxyFactory_$1224",
                                "typeString": "contract ProxyFactory"
                            }
                        },
                        "id": 5762,
                        "nodeType": "InheritanceSpecifier",
                        "src": "515:12:16"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 5763,
                            "name": "Initializable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 478,
                            "src": "529:13:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Initializable_$478",
                                "typeString": "contract Initializable"
                            }
                        },
                        "id": 5764,
                        "nodeType": "InheritanceSpecifier",
                        "src": "529:13:16"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 5765,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 340,
                            "src": "544:7:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$340",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 5766,
                        "nodeType": "InheritanceSpecifier",
                        "src": "544:7:16"
                    }
                ],
                "contractDependencies": [
                    29,
                    340,
                    478,
                    1224,
                    8402
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 6629,
                "linearizedBaseContracts": [
                    6629,
                    340,
                    29,
                    478,
                    1224,
                    8402
                ],
                "name": "Factory",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "canonicalName": "Factory.via",
                        "id": 5771,
                        "members": [
                            {
                                "constant": false,
                                "id": 5768,
                                "name": "tokenType",
                                "nodeType": "VariableDeclaration",
                                "scope": 5771,
                                "src": "622:17:16",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                },
                                "typeName": {
                                    "id": 5767,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "622:7:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            },
                            {
                                "constant": false,
                                "id": 5770,
                                "name": "name",
                                "nodeType": "VariableDeclaration",
                                "scope": 5771,
                                "src": "650:12:16",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                },
                                "typeName": {
                                    "id": 5769,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "650:7:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "value": null,
                                "visibility": "internal"
                            }
                        ],
                        "name": "via",
                        "nodeType": "StructDefinition",
                        "scope": 6629,
                        "src": "601:77:16",
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 5775,
                        "name": "token",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "722:36:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                            "typeString": "mapping(address => struct Factory.via)"
                        },
                        "typeName": {
                            "id": 5774,
                            "keyType": {
                                "id": 5772,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "730:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "722:23:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                "typeString": "mapping(address => struct Factory.via)"
                            },
                            "valueType": {
                                "contractScope": null,
                                "id": 5773,
                                "name": "via",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 5771,
                                "src": "741:3:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_via_$5771_storage_ptr",
                                    "typeString": "struct Factory.via"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 5777,
                        "name": "ViaOracle",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "797:17:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 5776,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "797:7:16",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 5779,
                        "name": "ViaOracleUrl",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "821:19:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string"
                        },
                        "typeName": {
                            "id": 5778,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "821:6:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                            }
                        },
                        "value": null,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 5781,
                        "name": "FiatPayoutUrl",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "867:20:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string"
                        },
                        "typeName": {
                            "id": 5780,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "867:6:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                            }
                        },
                        "value": null,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 5787,
                        "name": "CryptoDataUrl",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "919:60:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_string_storage_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => string))"
                        },
                        "typeName": {
                            "id": 5786,
                            "keyType": {
                                "id": 5782,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "927:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "919:46:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_string_storage_$_$",
                                "typeString": "mapping(bytes32 => mapping(bytes32 => string))"
                            },
                            "valueType": {
                                "id": 5785,
                                "keyType": {
                                    "id": 5783,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "946:7:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "938:26:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                                    "typeString": "mapping(bytes32 => string)"
                                },
                                "valueType": {
                                    "id": 5784,
                                    "name": "string",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "957:6:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage_ptr",
                                        "typeString": "string"
                                    }
                                }
                            }
                        },
                        "value": null,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 5790,
                        "name": "oracles",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1010:17:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 5788,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1010:7:16",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "id": 5789,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "1010:9:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                            }
                        },
                        "value": null,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 5792,
                        "name": "client",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1068:14:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 5791,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1068:7:16",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 5795,
                        "name": "tokens",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1136:23:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 5793,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1136:7:16",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "id": 5794,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "1136:9:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 5799,
                        "name": "tokenIndex",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1224:46:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                            "typeString": "mapping(bytes32 => uint256)"
                        },
                        "typeName": {
                            "id": 5798,
                            "keyType": {
                                "id": 5796,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1232:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1224:27:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                            },
                            "valueType": {
                                "id": 5797,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "1243:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 5805,
                        "name": "issuers",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1342:55:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                        },
                        "typeName": {
                            "id": 5804,
                            "keyType": {
                                "id": 5800,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1350:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1342:47:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                            },
                            "valueType": {
                                "id": 5803,
                                "keyType": {
                                    "id": 5801,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1369:7:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "1361:27:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                    "typeString": "mapping(bytes32 => address)"
                                },
                                "valueType": {
                                    "id": 5802,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1380:7:16",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                }
                            }
                        },
                        "value": null,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 5809,
                        "name": "term",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1451:40:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 5808,
                            "keyType": {
                                "id": 5806,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1459:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1451:27:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 5807,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "1470:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 5812,
                        "name": "currencies",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1539:27:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                            "typeString": "bytes32[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 5810,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1539:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "id": 5811,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "1539:9:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 5816,
                        "name": "currencyIndex",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1573:49:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                            "typeString": "mapping(bytes32 => uint256)"
                        },
                        "typeName": {
                            "id": 5815,
                            "keyType": {
                                "id": 5813,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1581:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1573:27:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                            },
                            "valueType": {
                                "id": 5814,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "1592:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 5820,
                        "name": "currencyAddress",
                        "nodeType": "VariableDeclaration",
                        "scope": 6629,
                        "src": "1629:51:16",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                        },
                        "typeName": {
                            "id": 5819,
                            "keyType": {
                                "id": 5817,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1637:7:16",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1629:27:16",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                            },
                            "valueType": {
                                "id": 5818,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1648:7:16",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 5828,
                        "name": "CashIssuerCreated",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 5827,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5822,
                                    "indexed": true,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5828,
                                    "src": "1713:22:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5821,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1713:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5824,
                                    "indexed": false,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5828,
                                    "src": "1737:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5823,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1737:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5826,
                                    "indexed": false,
                                    "name": "tokenType",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5828,
                                    "src": "1756:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5825,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1756:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1712:62:16"
                        },
                        "src": "1689:86:16"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 5836,
                        "name": "BondIssuerCreated",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 5835,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5830,
                                    "indexed": true,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5836,
                                    "src": "1805:22:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5829,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1805:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5832,
                                    "indexed": false,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5836,
                                    "src": "1829:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5831,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1829:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5834,
                                    "indexed": false,
                                    "name": "tokenType",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5836,
                                    "src": "1848:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5833,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1848:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1804:62:16"
                        },
                        "src": "1781:86:16"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 5844,
                        "name": "TokenCreated",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 5843,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5838,
                                    "indexed": true,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5844,
                                    "src": "1892:21:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5837,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1892:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5840,
                                    "indexed": false,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5844,
                                    "src": "1915:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5839,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1915:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5842,
                                    "indexed": false,
                                    "name": "tokenType",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5844,
                                    "src": "1934:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5841,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1934:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1891:61:16"
                        },
                        "src": "1873:80:16"
                    },
                    {
                        "body": {
                            "id": 5884,
                            "nodeType": "Block",
                            "src": "1997:214:16",
                            "statements": [
                                {
                                    "assignments": [
                                        5849
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5849,
                                            "name": "role",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5884,
                                            "src": "2008:12:16",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 5848,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2008:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5851,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "hexValue": "",
                                        "id": 5850,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2023:2:16",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                            "typeString": "literal_string \"\""
                                        },
                                        "value": ""
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2008:17:16"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 5856,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5852,
                                            "name": "client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5792,
                                            "src": "2039:6:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "307830",
                                                    "id": 5854,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2055:3:16",
                                                    "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": 5853,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "2047:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": "address"
                                            },
                                            "id": 5855,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2047:12:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "2039:20:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 5867,
                                    "nodeType": "IfStatement",
                                    "src": "2036:89:16",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5865,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                                "argumentTypes": null,
                                                "components": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5857,
                                                        "name": "role",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5849,
                                                        "src": "2075:4:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    null,
                                                    null
                                                ],
                                                "id": 5858,
                                                "isConstant": false,
                                                "isInlineArray": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": true,
                                                "nodeType": "TupleExpression",
                                                "src": "2074:10:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_tuple$_t_bytes32_$__$__$",
                                                    "typeString": "tuple(bytes32,,)"
                                                }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5863,
                                                        "name": "sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5846,
                                                        "src": "2118:6:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5860,
                                                                "name": "client",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5792,
                                                                "src": "2102:6:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 5859,
                                                            "name": "VerifiedClient",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8022,
                                                            "src": "2087:14:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_VerifiedClient_$8022_$",
                                                                "typeString": "type(contract VerifiedClient)"
                                                            }
                                                        },
                                                        "id": 5861,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2087:22:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_VerifiedClient_$8022",
                                                            "typeString": "contract VerifiedClient"
                                                        }
                                                    },
                                                    "id": 5862,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "getRole",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 7940,
                                                    "src": "2087:30:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                                        "typeString": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                    }
                                                },
                                                "id": 5864,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2087:38:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                                    "typeString": "tuple(bytes32,bytes32,bytes32)"
                                                }
                                            },
                                            "src": "2074:51:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$__$",
                                                "typeString": "tuple()"
                                            }
                                        },
                                        "id": 5866,
                                        "nodeType": "ExpressionStatement",
                                        "src": "2074:51:16"
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5880,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 5875,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        "id": 5871,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5869,
                                                            "name": "role",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5849,
                                                            "src": "2144:4:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "==",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "4450",
                                                            "id": 5870,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "2150:4:16",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_2e7a99dcc48463ba57667732f1d19d96afa51e11db099e5c9c708076a0a08040",
                                                                "typeString": "literal_string \"DP\""
                                                            },
                                                            "value": "DP"
                                                        },
                                                        "src": "2144:10:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "||",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        "id": 5874,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5872,
                                                            "name": "role",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5849,
                                                            "src": "2158:4:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "==",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "41646d696e",
                                                            "id": 5873,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "2164:7:16",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_a729ef4e25027bc652fc8b5c4d1d902947361fa7c8e7b4905e877823f27331b3",
                                                                "typeString": "literal_string \"Admin\""
                                                            },
                                                            "value": "Admin"
                                                        },
                                                        "src": "2158:13:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "2144:27:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 5879,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5876,
                                                        "name": "sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5846,
                                                        "src": "2175:6:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "id": 5877,
                                                            "name": "owner",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 259,
                                                            "src": "2183:5:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                                "typeString": "function () view returns (address)"
                                                            }
                                                        },
                                                        "id": 5878,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2183:7:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "2175:15:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "2144:46:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 5868,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "2136:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 5881,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2136:55:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5882,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2136:55:16"
                                },
                                {
                                    "id": 5883,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2202:1:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5885,
                        "name": "onlyManager",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 5847,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5846,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5885,
                                    "src": "1982:14:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5845,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1982:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1981:16:16"
                        },
                        "src": "1961:250:16",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 5897,
                            "nodeType": "Block",
                            "src": "2259:49:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 5893,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13007,
                                                    "src": "2289:3:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 5894,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "2289:10:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5890,
                                                "name": "Ownable",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 340,
                                                "src": "2270:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Ownable_$340_$",
                                                    "typeString": "type(contract Ownable)"
                                                }
                                            },
                                            "id": 5892,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "initialize",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 251,
                                            "src": "2270:18:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 5895,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2270:30:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5896,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2270:30:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5898,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 5888,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5887,
                                    "name": "initializer",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 453,
                                    "src": "2248:11:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "2248:11:16"
                            }
                        ],
                        "name": "initialize",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5886,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2238:2:16"
                        },
                        "returnParameters": {
                            "id": 5889,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2259:0:16"
                        },
                        "scope": 6629,
                        "src": "2219:89:16",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5906,
                            "nodeType": "Block",
                            "src": "2380:39:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5903,
                                            "name": "tokens",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5795,
                                            "src": "2398:6:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                "typeString": "address[] storage ref"
                                            }
                                        },
                                        "id": 5904,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "2398:13:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 5902,
                                    "id": 5905,
                                    "nodeType": "Return",
                                    "src": "2391:20:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5907,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getTokenCount",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5899,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2338:2:16"
                        },
                        "returnParameters": {
                            "id": 5902,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5901,
                                    "name": "tokenCount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5907,
                                    "src": "2363:15:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5900,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2363:4:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2362:17:16"
                        },
                        "scope": 6629,
                        "src": "2316:103:16",
                        "stateMutability": "view",
                        "superFunction": 8219,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5918,
                            "nodeType": "Block",
                            "src": "2486:35:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 5914,
                                            "name": "tokens",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5795,
                                            "src": "2504:6:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                "typeString": "address[] storage ref"
                                            }
                                        },
                                        "id": 5916,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 5915,
                                            "name": "n",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5909,
                                            "src": "2511:1:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "2504:9:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 5913,
                                    "id": 5917,
                                    "nodeType": "Return",
                                    "src": "2497:16:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5919,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5910,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5909,
                                    "name": "n",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5919,
                                    "src": "2445:9:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5908,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2445:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2444:11:16"
                        },
                        "returnParameters": {
                            "id": 5913,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5912,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5919,
                                    "src": "2478:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5911,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2478:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2477:9:16"
                        },
                        "scope": 6629,
                        "src": "2427:94:16",
                        "stateMutability": "view",
                        "superFunction": 8226,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5931,
                            "nodeType": "Block",
                            "src": "2597:48:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 5926,
                                                "name": "token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5775,
                                                "src": "2615:5:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                    "typeString": "mapping(address => struct Factory.via storage ref)"
                                                }
                                            },
                                            "id": 5928,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 5927,
                                                "name": "viaAddress",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5921,
                                                "src": "2621:10:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "2615:17:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_via_$5771_storage",
                                                "typeString": "struct Factory.via storage ref"
                                            }
                                        },
                                        "id": 5929,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "name",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 5770,
                                        "src": "2615:22:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "functionReturnParameters": 5925,
                                    "id": 5930,
                                    "nodeType": "Return",
                                    "src": "2608:29:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5932,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getName",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5922,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5921,
                                    "name": "viaAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5932,
                                    "src": "2546:18:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5920,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2546:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2545:20:16"
                        },
                        "returnParameters": {
                            "id": 5925,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5924,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5932,
                                    "src": "2588:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5923,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2588:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2587:9:16"
                        },
                        "scope": 6629,
                        "src": "2529:116:16",
                        "stateMutability": "view",
                        "superFunction": 8233,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5944,
                            "nodeType": "Block",
                            "src": "2721:53:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 5939,
                                                "name": "token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5775,
                                                "src": "2739:5:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                    "typeString": "mapping(address => struct Factory.via storage ref)"
                                                }
                                            },
                                            "id": 5941,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 5940,
                                                "name": "viaAddress",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5934,
                                                "src": "2745:10:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "2739:17:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_via_$5771_storage",
                                                "typeString": "struct Factory.via storage ref"
                                            }
                                        },
                                        "id": 5942,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "tokenType",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 5768,
                                        "src": "2739:27:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "functionReturnParameters": 5938,
                                    "id": 5943,
                                    "nodeType": "Return",
                                    "src": "2732:34:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5945,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getType",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5935,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5934,
                                    "name": "viaAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5945,
                                    "src": "2670:18:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5933,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2670:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2669:20:16"
                        },
                        "returnParameters": {
                            "id": 5938,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5937,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5945,
                                    "src": "2712:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5936,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2712:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2711:9:16"
                        },
                        "scope": 6629,
                        "src": "2653:121:16",
                        "stateMutability": "view",
                        "superFunction": 8240,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5964,
                            "nodeType": "Block",
                            "src": "2865:79:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5954,
                                                        "name": "token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5775,
                                                        "src": "2884:5:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                            "typeString": "mapping(address => struct Factory.via storage ref)"
                                                        }
                                                    },
                                                    "id": 5956,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5955,
                                                        "name": "viaAddress",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5947,
                                                        "src": "2890:10:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "2884:17:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                        "typeString": "struct Factory.via storage ref"
                                                    }
                                                },
                                                "id": 5957,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "name",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 5770,
                                                "src": "2884:22:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5958,
                                                        "name": "token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5775,
                                                        "src": "2908:5:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                            "typeString": "mapping(address => struct Factory.via storage ref)"
                                                        }
                                                    },
                                                    "id": 5960,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5959,
                                                        "name": "viaAddress",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5947,
                                                        "src": "2914:10:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "2908:17:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                        "typeString": "struct Factory.via storage ref"
                                                    }
                                                },
                                                "id": 5961,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "tokenType",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 5768,
                                                "src": "2908:27:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "id": 5962,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "2883:53:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "tuple(bytes32,bytes32)"
                                        }
                                    },
                                    "functionReturnParameters": 5953,
                                    "id": 5963,
                                    "nodeType": "Return",
                                    "src": "2876:60:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5965,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getNameAndType",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5948,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5947,
                                    "name": "viaAddress",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5965,
                                    "src": "2806:18:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5946,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2806:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2805:20:16"
                        },
                        "returnParameters": {
                            "id": 5953,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5950,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5965,
                                    "src": "2848:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5949,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2848:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5952,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5965,
                                    "src": "2857:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5951,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2857:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2847:18:16"
                        },
                        "scope": 6629,
                        "src": "2782:162:16",
                        "stateMutability": "view",
                        "superFunction": 8249,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6002,
                            "nodeType": "Block",
                            "src": "3048:194:16",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "id": 5994,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 5983,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5974,
                                                        "name": "token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5775,
                                                        "src": "3062:5:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                            "typeString": "mapping(address => struct Factory.via storage ref)"
                                                        }
                                                    },
                                                    "id": 5980,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5975,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5795,
                                                            "src": "3068:6:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 5979,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5976,
                                                                "name": "tokenIndex",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5799,
                                                                "src": "3075:10:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                    "typeString": "mapping(bytes32 => uint256)"
                                                                }
                                                            },
                                                            "id": 5978,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5977,
                                                                "name": "tokenName",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5967,
                                                                "src": "3086:9:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3075:21:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3068:29:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "3062:36:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                        "typeString": "struct Factory.via storage ref"
                                                    }
                                                },
                                                "id": 5981,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "name",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 5770,
                                                "src": "3062:41:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "id": 5982,
                                                "name": "tokenName",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5967,
                                                "src": "3107:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "src": "3062:54:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "&&",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 5993,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5984,
                                                        "name": "token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5775,
                                                        "src": "3120:5:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                            "typeString": "mapping(address => struct Factory.via storage ref)"
                                                        }
                                                    },
                                                    "id": 5990,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5985,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5795,
                                                            "src": "3126:6:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 5989,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5986,
                                                                "name": "tokenIndex",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5799,
                                                                "src": "3133:10:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                    "typeString": "mapping(bytes32 => uint256)"
                                                                }
                                                            },
                                                            "id": 5988,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5987,
                                                                "name": "tokenName",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5967,
                                                                "src": "3144:9:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3133:21:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3126:29:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "3120:36:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                        "typeString": "struct Factory.via storage ref"
                                                    }
                                                },
                                                "id": 5991,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "tokenType",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 5768,
                                                "src": "3120:46:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "id": 5992,
                                                "name": "tokenType",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5969,
                                                "src": "3170:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "src": "3120:59:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "src": "3062:117:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 6001,
                                    "nodeType": "IfStatement",
                                    "src": "3059:175:16",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 5995,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5795,
                                                "src": "3205:6:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 5999,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5996,
                                                    "name": "tokenIndex",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5799,
                                                    "src": "3212:10:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                        "typeString": "mapping(bytes32 => uint256)"
                                                    }
                                                },
                                                "id": 5998,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5997,
                                                    "name": "tokenName",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5967,
                                                    "src": "3223:9:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "3212:21:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "3205:29:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "functionReturnParameters": 5973,
                                        "id": 6000,
                                        "nodeType": "Return",
                                        "src": "3198:36:16"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6003,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getTokenByNameType",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5970,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5967,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6003,
                                    "src": "2980:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5966,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2980:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5969,
                                    "name": "tokenType",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6003,
                                    "src": "2999:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 5968,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2999:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2979:38:16"
                        },
                        "returnParameters": {
                            "id": 5973,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5972,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6003,
                                    "src": "3040:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5971,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3040:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3039:9:16"
                        },
                        "scope": 6629,
                        "src": "2952:290:16",
                        "stateMutability": "view",
                        "superFunction": 8276,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6018,
                            "nodeType": "Block",
                            "src": "3412:55:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 6012,
                                                "name": "issuers",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5805,
                                                "src": "3430:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                                    "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                                                }
                                            },
                                            "id": 6014,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 6013,
                                                "name": "tokenType",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6005,
                                                "src": "3438:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "3430:18:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 6016,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 6015,
                                            "name": "tokenName",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6007,
                                            "src": "3449:9:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "3430:29:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 6011,
                                    "id": 6017,
                                    "nodeType": "Return",
                                    "src": "3423:36:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6019,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getIssuer",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6008,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6005,
                                    "name": "tokenType",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6019,
                                    "src": "3344:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6004,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3344:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6007,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6019,
                                    "src": "3363:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6006,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3363:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3343:38:16"
                        },
                        "returnParameters": {
                            "id": 6011,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6010,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6019,
                                    "src": "3404:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6009,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3404:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3403:9:16"
                        },
                        "scope": 6629,
                        "src": "3325:142:16",
                        "stateMutability": "view",
                        "superFunction": 8258,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6070,
                            "nodeType": "Block",
                            "src": "3623:305:16",
                            "statements": [
                                {
                                    "assignments": [
                                        6029
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6029,
                                            "name": "found",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6070,
                                            "src": "3634:10:16",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "typeName": {
                                                "id": 6028,
                                                "name": "bool",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "3634:4:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6031,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "hexValue": "66616c7365",
                                        "id": 6030,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3647:5:16",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "false"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3634:18:16"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 6041,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6032,
                                                    "name": "token",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5775,
                                                    "src": "3666:5:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                        "typeString": "mapping(address => struct Factory.via storage ref)"
                                                    }
                                                },
                                                "id": 6038,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 6033,
                                                        "name": "tokens",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5795,
                                                        "src": "3672:6:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                            "typeString": "address[] storage ref"
                                                        }
                                                    },
                                                    "id": 6037,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6034,
                                                            "name": "tokenIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5799,
                                                            "src": "3679:10:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                "typeString": "mapping(bytes32 => uint256)"
                                                            }
                                                        },
                                                        "id": 6036,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6035,
                                                            "name": "tokenName",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6021,
                                                            "src": "3690:9:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3679:21:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "3672:29:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "3666:36:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_via_$5771_storage",
                                                    "typeString": "struct Factory.via storage ref"
                                                }
                                            },
                                            "id": 6039,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "name",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 5770,
                                            "src": "3666:41:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 6040,
                                            "name": "tokenName",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6021,
                                            "src": "3709:9:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "3666:52:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 6046,
                                    "nodeType": "IfStatement",
                                    "src": "3663:83:16",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "id": 6044,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 6042,
                                                "name": "found",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6029,
                                                "src": "3733:5:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "74727565",
                                                "id": 6043,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "bool",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3742:4:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "value": "true"
                                            },
                                            "src": "3733:13:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "id": 6045,
                                        "nodeType": "ExpressionStatement",
                                        "src": "3733:13:16"
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "id": 6047,
                                        "name": "found",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6029,
                                        "src": "3760:5:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "components": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "307830",
                                                            "id": 6064,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "3911:3:16",
                                                            "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": 6063,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "3903:7:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": "address"
                                                    },
                                                    "id": 6065,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3903:12:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "hexValue": "",
                                                    "id": 6066,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "3917:2:16",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                        "typeString": "literal_string \"\""
                                                    },
                                                    "value": ""
                                                }
                                            ],
                                            "id": 6067,
                                            "isConstant": false,
                                            "isInlineArray": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "TupleExpression",
                                            "src": "3902:18:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$_t_address_payable_$_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_$",
                                                "typeString": "tuple(address payable,literal_string \"\")"
                                            }
                                        },
                                        "functionReturnParameters": 6027,
                                        "id": 6068,
                                        "nodeType": "Return",
                                        "src": "3895:25:16"
                                    },
                                    "id": 6069,
                                    "nodeType": "IfStatement",
                                    "src": "3757:163:16",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "components": [
                                                {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 6048,
                                                        "name": "tokens",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5795,
                                                        "src": "3788:6:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                            "typeString": "address[] storage ref"
                                                        }
                                                    },
                                                    "id": 6052,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6049,
                                                            "name": "tokenIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5799,
                                                            "src": "3795:10:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                "typeString": "mapping(bytes32 => uint256)"
                                                            }
                                                        },
                                                        "id": 6051,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6050,
                                                            "name": "tokenName",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6021,
                                                            "src": "3806:9:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3795:21:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "3788:29:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6053,
                                                            "name": "token",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5775,
                                                            "src": "3819:5:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                "typeString": "mapping(address => struct Factory.via storage ref)"
                                                            }
                                                        },
                                                        "id": 6059,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 6054,
                                                                "name": "tokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5795,
                                                                "src": "3825:6:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                    "typeString": "address[] storage ref"
                                                                }
                                                            },
                                                            "id": 6058,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6055,
                                                                    "name": "tokenIndex",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5799,
                                                                    "src": "3832:10:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                        "typeString": "mapping(bytes32 => uint256)"
                                                                    }
                                                                },
                                                                "id": 6057,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6056,
                                                                    "name": "tokenName",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6021,
                                                                    "src": "3843:9:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "3832:21:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "3825:29:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "3819:36:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_via_$5771_storage",
                                                            "typeString": "struct Factory.via storage ref"
                                                        }
                                                    },
                                                    "id": 6060,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "tokenType",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 5768,
                                                    "src": "3819:46:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                }
                                            ],
                                            "id": 6061,
                                            "isConstant": false,
                                            "isInlineArray": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "TupleExpression",
                                            "src": "3787:79:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$_t_address_$_t_bytes32_$",
                                                "typeString": "tuple(address,bytes32)"
                                            }
                                        },
                                        "functionReturnParameters": 6027,
                                        "id": 6062,
                                        "nodeType": "Return",
                                        "src": "3780:86:16"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6071,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getAddressAndType",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6022,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6021,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6071,
                                    "src": "3564:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6020,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3564:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3563:19:16"
                        },
                        "returnParameters": {
                            "id": 6027,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6024,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6071,
                                    "src": "3606:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6023,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3606:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6026,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6071,
                                    "src": "3615:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6025,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3615:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3605:18:16"
                        },
                        "scope": 6629,
                        "src": "3537:391:16",
                        "stateMutability": "view",
                        "superFunction": 8267,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6085,
                            "nodeType": "Block",
                            "src": "3999:81:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6080,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 6077,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "4018:3:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 6078,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "4018:10:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6079,
                                                    "name": "ViaOracle",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5777,
                                                    "src": "4032:9:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "4018:23:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 6076,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "4010:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 6081,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4010:32:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6082,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4010:32:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6083,
                                        "name": "ViaOracleUrl",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5779,
                                        "src": "4060:12:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 6075,
                                    "id": 6084,
                                    "nodeType": "Return",
                                    "src": "4053:19:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6086,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getViaOracleUrl",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6072,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "3960:2:16"
                        },
                        "returnParameters": {
                            "id": 6075,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6074,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6086,
                                    "src": "3985:13:16",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6073,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3985:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3984:15:16"
                        },
                        "scope": 6629,
                        "src": "3936:144:16",
                        "stateMutability": "view",
                        "superFunction": 8281,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6100,
                            "nodeType": "Block",
                            "src": "4152:82:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6095,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 6092,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "4171:3:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 6093,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "4171:10:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6094,
                                                    "name": "ViaOracle",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5777,
                                                    "src": "4185:9:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "4171:23:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 6091,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "4163:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 6096,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4163:32:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6097,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4163:32:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6098,
                                        "name": "FiatPayoutUrl",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5781,
                                        "src": "4213:13:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 6090,
                                    "id": 6099,
                                    "nodeType": "Return",
                                    "src": "4206:20:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6101,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getFiatPayoutUrl",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6087,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4113:2:16"
                        },
                        "returnParameters": {
                            "id": 6090,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6089,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6101,
                                    "src": "4138:13:16",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6088,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4138:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4137:15:16"
                        },
                        "scope": 6629,
                        "src": "4088:146:16",
                        "stateMutability": "view",
                        "superFunction": 8337,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6123,
                            "nodeType": "Block",
                            "src": "4346:108:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6114,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 6111,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "4365:3:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 6112,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "4365:10:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6113,
                                                    "name": "ViaOracle",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5777,
                                                    "src": "4379:9:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "4365:23:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 6110,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "4357:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 6115,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4357:32:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6116,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4357:32:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 6117,
                                                "name": "CryptoDataUrl",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5787,
                                                "src": "4407:13:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_string_storage_$_$",
                                                    "typeString": "mapping(bytes32 => mapping(bytes32 => string storage ref))"
                                                }
                                            },
                                            "id": 6119,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 6118,
                                                "name": "fromCurrency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6103,
                                                "src": "4421:12:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "4407:27:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                                                "typeString": "mapping(bytes32 => string storage ref)"
                                            }
                                        },
                                        "id": 6121,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 6120,
                                            "name": "toCurrency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6105,
                                            "src": "4435:10:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "4407:39:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 6109,
                                    "id": 6122,
                                    "nodeType": "Return",
                                    "src": "4400:46:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6124,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getCryptoDataUrl",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6106,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6103,
                                    "name": "fromCurrency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6124,
                                    "src": "4268:20:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6102,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4268:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6105,
                                    "name": "toCurrency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6124,
                                    "src": "4290:18:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6104,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4290:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4267:42:16"
                        },
                        "returnParameters": {
                            "id": 6109,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6108,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6124,
                                    "src": "4332:13:16",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6107,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4332:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4331:15:16"
                        },
                        "scope": 6629,
                        "src": "4242:212:16",
                        "stateMutability": "view",
                        "superFunction": 8290,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6150,
                            "nodeType": "Block",
                            "src": "4562:162:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 6144,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 6136,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 6130,
                                                                "name": "token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5775,
                                                                "src": "4581:5:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                    "typeString": "mapping(address => struct Factory.via storage ref)"
                                                                }
                                                            },
                                                            "id": 6133,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6131,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "4587:3:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 6132,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "4587:10:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "4581:17:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                "typeString": "struct Factory.via storage ref"
                                                            }
                                                        },
                                                        "id": 6134,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "tokenType",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 5768,
                                                        "src": "4581:27:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "56696143617368",
                                                        "id": 6135,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "4612:9:16",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                            "typeString": "literal_string \"ViaCash\""
                                                        },
                                                        "value": "ViaCash"
                                                    },
                                                    "src": "4581:40:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 6143,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 6137,
                                                                "name": "token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5775,
                                                                "src": "4625:5:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                    "typeString": "mapping(address => struct Factory.via storage ref)"
                                                                }
                                                            },
                                                            "id": 6140,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6138,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "4631:3:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 6139,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "4631:10:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "4625:17:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                "typeString": "struct Factory.via storage ref"
                                                            }
                                                        },
                                                        "id": 6141,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "tokenType",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 5768,
                                                        "src": "4625:27:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "566961426f6e64",
                                                        "id": 6142,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "4656:9:16",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                            "typeString": "literal_string \"ViaBond\""
                                                        },
                                                        "value": "ViaBond"
                                                    },
                                                    "src": "4625:40:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "4581:84:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "47657420636c69656e74203a20464f5242494444454e",
                                                "id": 6145,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4667:24:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_dea9422c714183435541e373f04983eb3b27b5d05cff61138974b29a6780bbc1",
                                                    "typeString": "literal_string \"Get client : FORBIDDEN\""
                                                },
                                                "value": "Get client : FORBIDDEN"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_dea9422c714183435541e373f04983eb3b27b5d05cff61138974b29a6780bbc1",
                                                    "typeString": "literal_string \"Get client : FORBIDDEN\""
                                                }
                                            ],
                                            "id": 6129,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "4573:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6146,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4573:119:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6147,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4573:119:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6148,
                                        "name": "client",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5792,
                                        "src": "4710:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 6128,
                                    "id": 6149,
                                    "nodeType": "Return",
                                    "src": "4703:13:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6151,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getClient",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6125,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4529:2:16"
                        },
                        "returnParameters": {
                            "id": 6128,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6127,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6151,
                                    "src": "4554:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6126,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4554:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4553:9:16"
                        },
                        "scope": 6629,
                        "src": "4511:213:16",
                        "stateMutability": "view",
                        "superFunction": 8361,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6166,
                            "nodeType": "Block",
                            "src": "4793:76:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6161,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 6158,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "4812:3:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 6159,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "4812:10:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6160,
                                                    "name": "ViaOracle",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5777,
                                                    "src": "4826:9:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "4812:23:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 6157,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "4804:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 6162,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4804:32:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6163,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4804:32:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6164,
                                        "name": "oracles",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5790,
                                        "src": "4854:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                            "typeString": "address[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 6156,
                                    "id": 6165,
                                    "nodeType": "Return",
                                    "src": "4847:14:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6167,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getOracles",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6152,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4751:2:16"
                        },
                        "returnParameters": {
                            "id": 6156,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6155,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6167,
                                    "src": "4776:16:16",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 6153,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "4776:7:16",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 6154,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "4776:9:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4775:18:16"
                        },
                        "scope": 6629,
                        "src": "4732:137:16",
                        "stateMutability": "view",
                        "superFunction": 8367,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6178,
                            "nodeType": "Block",
                            "src": "4948:42:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 6174,
                                            "name": "term",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5809,
                                            "src": "4966:4:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 6176,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 6175,
                                            "name": "_bondToken",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6169,
                                            "src": "4971:10:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "4966:16:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 6173,
                                    "id": 6177,
                                    "nodeType": "Return",
                                    "src": "4959:23:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6179,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getBondTerm",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6170,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6169,
                                    "name": "_bondToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6179,
                                    "src": "4898:18:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6168,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4898:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4897:20:16"
                        },
                        "returnParameters": {
                            "id": 6173,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6172,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6179,
                                    "src": "4940:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6171,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4940:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4939:9:16"
                        },
                        "scope": 6629,
                        "src": "4877:113:16",
                        "stateMutability": "view",
                        "superFunction": 8297,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6387,
                            "nodeType": "Block",
                            "src": "5192:1657:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6200,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 6198,
                                            "name": "ViaOracle",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5777,
                                            "src": "5203:9:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 6199,
                                            "name": "_oracle",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6189,
                                            "src": "5215:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "5203:19:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 6201,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5203:19:16"
                                },
                                {
                                    "assignments": [
                                        6203
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6203,
                                            "name": "_payload",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6387,
                                            "src": "5233:21:16",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes"
                                            },
                                            "typeName": {
                                                "id": 6202,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5233:5:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_storage_ptr",
                                                    "typeString": "bytes"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6215,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "696e697469616c697a6528627974657333322c627974657333322c616464726573732c616464726573732c616464726573732c6164647265737329",
                                                "id": 6206,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5281:61:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_89d29c4c62aed23557cdd6503067fff926c36e4130ad6bce6fa6ed9d62392f96",
                                                    "typeString": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\""
                                                },
                                                "value": "initialize(bytes32,bytes32,address,address,address,address)"
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6207,
                                                "name": "tokenName",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6183,
                                                "src": "5343:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6208,
                                                "name": "tokenCurrency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6187,
                                                "src": "5353:13:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 6209,
                                                    "name": "owner",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 259,
                                                    "src": "5367:5:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                        "typeString": "function () view returns (address)"
                                                    }
                                                },
                                                "id": 6210,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5367:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6211,
                                                "name": "_oracle",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6189,
                                                "src": "5375:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6212,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6191,
                                                "src": "5383:6:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6213,
                                                "name": "_fee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6193,
                                                "src": "5390:4:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_stringliteral_89d29c4c62aed23557cdd6503067fff926c36e4130ad6bce6fa6ed9d62392f96",
                                                    "typeString": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\""
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 6204,
                                                "name": "abi",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12994,
                                                "src": "5257:3:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_magic_abi",
                                                    "typeString": "abi"
                                                }
                                            },
                                            "id": 6205,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "memberName": "encodeWithSignature",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "5257:23:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (bytes memory)"
                                            }
                                        },
                                        "id": 6214,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5257:138:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5233:162:16"
                                },
                                {
                                    "assignments": [
                                        6217
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6217,
                                            "name": "_issuer",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6387,
                                            "src": "5433:15:16",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 6216,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5433:7:16",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6222,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6219,
                                                "name": "_target",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6181,
                                                "src": "5465:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6220,
                                                "name": "_payload",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6203,
                                                "src": "5474:8:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            ],
                                            "id": 6218,
                                            "name": "deployMinimal",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 985,
                                            "src": "5451:13:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$",
                                                "typeString": "function (address,bytes memory) returns (address)"
                                            }
                                        },
                                        "id": 6221,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5451:32:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5433:50:16"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 6225,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 6223,
                                            "name": "tokenType",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6185,
                                            "src": "5497:9:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "43617368",
                                            "id": 6224,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5508:6:16",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_1739b83a302deda3e993297a9ec8fd7bba94ba13c6895920678c8620b597d0b7",
                                                "typeString": "literal_string \"Cash\""
                                            },
                                            "value": "Cash"
                                        },
                                        "src": "5497:17:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 6234,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 6232,
                                                "name": "tokenType",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6185,
                                                "src": "5601:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "426f6e64",
                                                "id": 6233,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5614:6:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_0f4c8b8dbaf47dd5302438160de8604b817a049d3d53ed9cefaa77780c9e9346",
                                                    "typeString": "literal_string \"Bond\""
                                                },
                                                "value": "Bond"
                                            },
                                            "src": "5601:19:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": null,
                                        "id": 6241,
                                        "nodeType": "IfStatement",
                                        "src": "5598:90:16",
                                        "trueBody": {
                                            "eventCall": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6236,
                                                        "name": "_issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6217,
                                                        "src": "5658:7:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6237,
                                                        "name": "tokenName",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6183,
                                                        "src": "5667:9:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6238,
                                                        "name": "tokenType",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6185,
                                                        "src": "5678:9:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    ],
                                                    "id": 6235,
                                                    "name": "BondIssuerCreated",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5836,
                                                    "src": "5640:17:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
                                                        "typeString": "function (address,bytes32,bytes32)"
                                                    }
                                                },
                                                "id": 6239,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5640:48:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_tuple$__$",
                                                    "typeString": "tuple()"
                                                }
                                            },
                                            "id": 6240,
                                            "nodeType": "EmitStatement",
                                            "src": "5635:53:16"
                                        }
                                    },
                                    "id": 6242,
                                    "nodeType": "IfStatement",
                                    "src": "5494:194:16",
                                    "trueBody": {
                                        "eventCall": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 6227,
                                                    "name": "_issuer",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6217,
                                                    "src": "5552:7:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 6228,
                                                    "name": "tokenName",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6183,
                                                    "src": "5561:9:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "id": 6229,
                                                    "name": "tokenType",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6185,
                                                    "src": "5572:9:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                ],
                                                "id": 6226,
                                                "name": "CashIssuerCreated",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5828,
                                                "src": "5534:17:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
                                                    "typeString": "function (address,bytes32,bytes32)"
                                                }
                                            },
                                            "id": 6230,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5534:48:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$__$",
                                                "typeString": "tuple()"
                                            }
                                        },
                                        "id": 6231,
                                        "nodeType": "EmitStatement",
                                        "src": "5529:53:16"
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 6245,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 6243,
                                            "name": "tokenType",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6185,
                                            "src": "5704:9:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "43617368",
                                            "id": 6244,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5717:6:16",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_1739b83a302deda3e993297a9ec8fd7bba94ba13c6895920678c8620b597d0b7",
                                                "typeString": "literal_string \"Cash\""
                                            },
                                            "value": "Cash"
                                        },
                                        "src": "5704:19:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 6316,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "id": 6314,
                                                "name": "tokenType",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6185,
                                                "src": "6282:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "426f6e64",
                                                "id": 6315,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "6295:6:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_0f4c8b8dbaf47dd5302438160de8604b817a049d3d53ed9cefaa77780c9e9346",
                                                    "typeString": "literal_string \"Bond\""
                                                },
                                                "value": "Bond"
                                            },
                                            "src": "6282:19:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseBody": null,
                                        "id": 6385,
                                        "nodeType": "IfStatement",
                                        "src": "6279:563:16",
                                        "trueBody": {
                                            "id": 6384,
                                            "nodeType": "Block",
                                            "src": "6302:540:16",
                                            "statements": [
                                                {
                                                    "condition": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "id": 6325,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6317,
                                                                    "name": "issuers",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5805,
                                                                    "src": "6320:7:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                                                        "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                                                                    }
                                                                },
                                                                "id": 6319,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "566961426f6e64",
                                                                    "id": 6318,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "string",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "6328:9:16",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                        "typeString": "literal_string \"ViaBond\""
                                                                    },
                                                                    "value": "ViaBond"
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "6320:18:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                    "typeString": "mapping(bytes32 => address)"
                                                                }
                                                            },
                                                            "id": 6321,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 6320,
                                                                "name": "tokenCurrency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6187,
                                                                "src": "6339:13:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "6320:33:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "!=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "307830",
                                                                    "id": 6323,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "6363:3:16",
                                                                    "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": 6322,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "6355:7:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 6324,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "6355:12:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        "src": "6320:47:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "falseBody": {
                                                        "id": 6382,
                                                        "nodeType": "Block",
                                                        "src": "6583:248:16",
                                                        "statements": [
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6359,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6352,
                                                                            "name": "token",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5775,
                                                                            "src": "6602:5:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                                "typeString": "mapping(address => struct Factory.via storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 6354,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6353,
                                                                            "name": "_issuer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6217,
                                                                            "src": "6608:7:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "6602:14:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                            "typeString": "struct Factory.via storage ref"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "566961426f6e64",
                                                                                "id": 6356,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "string",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "6623:9:16",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                },
                                                                                "value": "ViaBond"
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 6357,
                                                                                "name": "tokenName",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 6183,
                                                                                "src": "6634:9:16",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "id": 6355,
                                                                            "name": "via",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5771,
                                                                            "src": "6619:3:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_struct$_via_$5771_storage_ptr_$",
                                                                                "typeString": "type(struct Factory.via storage pointer)"
                                                                            }
                                                                        },
                                                                        "id": 6358,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "structConstructorCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "6619:25:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_via_$5771_memory",
                                                                            "typeString": "struct Factory.via memory"
                                                                        }
                                                                    },
                                                                    "src": "6602:42:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                        "typeString": "struct Factory.via storage ref"
                                                                    }
                                                                },
                                                                "id": 6360,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "6602:42:16"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6366,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6361,
                                                                            "name": "tokenIndex",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5799,
                                                                            "src": "6663:10:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                                "typeString": "mapping(bytes32 => uint256)"
                                                                            }
                                                                        },
                                                                        "id": 6363,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6362,
                                                                            "name": "tokenName",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6183,
                                                                            "src": "6674:9:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "6663:21:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6364,
                                                                            "name": "tokens",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5795,
                                                                            "src": "6685:6:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                "typeString": "address[] storage ref"
                                                                            }
                                                                        },
                                                                        "id": 6365,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "length",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": null,
                                                                        "src": "6685:13:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "src": "6663:35:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "id": 6367,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "6663:35:16"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 6371,
                                                                            "name": "_issuer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6217,
                                                                            "src": "6729:7:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6368,
                                                                            "name": "tokens",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5795,
                                                                            "src": "6717:6:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                "typeString": "address[] storage ref"
                                                                            }
                                                                        },
                                                                        "id": 6370,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "push",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": null,
                                                                        "src": "6717:11:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                                            "typeString": "function (address) returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 6372,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "6717:20:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "id": 6373,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "6717:20:16"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6380,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 6374,
                                                                                "name": "issuers",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5805,
                                                                                "src": "6772:7:16",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                                                                    "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                                                                                }
                                                                            },
                                                                            "id": 6377,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "566961426f6e64",
                                                                                "id": 6375,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "string",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "6780:9:16",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                },
                                                                                "value": "ViaBond"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "6772:18:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 6378,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6376,
                                                                            "name": "tokenCurrency",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6187,
                                                                            "src": "6791:13:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "6772:33:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "id": 6379,
                                                                        "name": "_issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6217,
                                                                        "src": "6808:7:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "src": "6772:43:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "id": 6381,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "6772:43:16"
                                                            }
                                                        ]
                                                    },
                                                    "id": 6383,
                                                    "nodeType": "IfStatement",
                                                    "src": "6317:514:16",
                                                    "trueBody": {
                                                        "id": 6351,
                                                        "nodeType": "Block",
                                                        "src": "6368:197:16",
                                                        "statements": [
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6333,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6326,
                                                                            "name": "token",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5775,
                                                                            "src": "6387:5:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                                "typeString": "mapping(address => struct Factory.via storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 6328,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6327,
                                                                            "name": "_issuer",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6217,
                                                                            "src": "6393:7:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "6387:14:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                            "typeString": "struct Factory.via storage ref"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "566961426f6e64",
                                                                                "id": 6330,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "string",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "6408:9:16",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                },
                                                                                "value": "ViaBond"
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 6331,
                                                                                "name": "tokenName",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 6183,
                                                                                "src": "6419:9:16",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "id": 6329,
                                                                            "name": "via",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5771,
                                                                            "src": "6404:3:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_struct$_via_$5771_storage_ptr_$",
                                                                                "typeString": "type(struct Factory.via storage pointer)"
                                                                            }
                                                                        },
                                                                        "id": 6332,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "structConstructorCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "6404:25:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_via_$5771_memory",
                                                                            "typeString": "struct Factory.via memory"
                                                                        }
                                                                    },
                                                                    "src": "6387:42:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                        "typeString": "struct Factory.via storage ref"
                                                                    }
                                                                },
                                                                "id": 6334,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "6387:42:16"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6341,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6335,
                                                                            "name": "tokens",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5795,
                                                                            "src": "6448:6:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                "typeString": "address[] storage ref"
                                                                            }
                                                                        },
                                                                        "id": 6339,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 6336,
                                                                                "name": "tokenIndex",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5799,
                                                                                "src": "6455:10:16",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                                    "typeString": "mapping(bytes32 => uint256)"
                                                                                }
                                                                            },
                                                                            "id": 6338,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 6337,
                                                                                "name": "tokenName",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 6183,
                                                                                "src": "6466:9:16",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "6455:21:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "6448:29:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "id": 6340,
                                                                        "name": "_issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6217,
                                                                        "src": "6480:7:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "src": "6448:39:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "id": 6342,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "6448:39:16"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6349,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 6343,
                                                                                "name": "issuers",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5805,
                                                                                "src": "6506:7:16",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                                                                    "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                                                                                }
                                                                            },
                                                                            "id": 6346,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "566961426f6e64",
                                                                                "id": 6344,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "string",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "6514:9:16",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                },
                                                                                "value": "ViaBond"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "6506:18:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 6347,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6345,
                                                                            "name": "tokenCurrency",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6187,
                                                                            "src": "6525:13:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "6506:33:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "argumentTypes": null,
                                                                        "id": 6348,
                                                                        "name": "_issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6217,
                                                                        "src": "6542:7:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "src": "6506:43:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "id": 6350,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "6506:43:16"
                                                            }
                                                        ]
                                                    }
                                                }
                                            ]
                                        }
                                    },
                                    "id": 6386,
                                    "nodeType": "IfStatement",
                                    "src": "5701:1141:16",
                                    "trueBody": {
                                        "id": 6313,
                                        "nodeType": "Block",
                                        "src": "5724:540:16",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 6254,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 6246,
                                                                "name": "issuers",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5805,
                                                                "src": "5742:7:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                                                    "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                                                                }
                                                            },
                                                            "id": 6248,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "56696143617368",
                                                                "id": 6247,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "string",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "5750:9:16",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                    "typeString": "literal_string \"ViaCash\""
                                                                },
                                                                "value": "ViaCash"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "5742:18:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 6250,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6249,
                                                            "name": "tokenCurrency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6187,
                                                            "src": "5761:13:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "5742:33:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "!=",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "hexValue": "307830",
                                                                "id": 6252,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "5785:3:16",
                                                                "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": 6251,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "5777:7:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": "address"
                                                        },
                                                        "id": 6253,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5777:12:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "src": "5742:47:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "id": 6311,
                                                    "nodeType": "Block",
                                                    "src": "6005:248:16",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 6288,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6281,
                                                                        "name": "token",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5775,
                                                                        "src": "6024:5:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                            "typeString": "mapping(address => struct Factory.via storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 6283,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6282,
                                                                        "name": "_issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6217,
                                                                        "src": "6030:7:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "6024:14:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                        "typeString": "struct Factory.via storage ref"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "56696143617368",
                                                                            "id": 6285,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "6045:9:16",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                "typeString": "literal_string \"ViaCash\""
                                                                            },
                                                                            "value": "ViaCash"
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 6286,
                                                                            "name": "tokenName",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6183,
                                                                            "src": "6056:9:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                "typeString": "literal_string \"ViaCash\""
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        ],
                                                                        "id": 6284,
                                                                        "name": "via",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5771,
                                                                        "src": "6041:3:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_struct$_via_$5771_storage_ptr_$",
                                                                            "typeString": "type(struct Factory.via storage pointer)"
                                                                        }
                                                                    },
                                                                    "id": 6287,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "structConstructorCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "6041:25:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_via_$5771_memory",
                                                                        "typeString": "struct Factory.via memory"
                                                                    }
                                                                },
                                                                "src": "6024:42:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                    "typeString": "struct Factory.via storage ref"
                                                                }
                                                            },
                                                            "id": 6289,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "6024:42:16"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 6295,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6290,
                                                                        "name": "tokenIndex",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5799,
                                                                        "src": "6085:10:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                            "typeString": "mapping(bytes32 => uint256)"
                                                                        }
                                                                    },
                                                                    "id": 6292,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6291,
                                                                        "name": "tokenName",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6183,
                                                                        "src": "6096:9:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "6085:21:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6293,
                                                                        "name": "tokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5795,
                                                                        "src": "6107:6:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                            "typeString": "address[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 6294,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "length",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": null,
                                                                    "src": "6107:13:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "6085:35:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 6296,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "6085:35:16"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 6300,
                                                                        "name": "_issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6217,
                                                                        "src": "6151:7:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6297,
                                                                        "name": "tokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5795,
                                                                        "src": "6139:6:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                            "typeString": "address[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 6299,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "push",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": null,
                                                                    "src": "6139:11:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                                        "typeString": "function (address) returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 6301,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "6139:20:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 6302,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "6139:20:16"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 6309,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6303,
                                                                            "name": "issuers",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5805,
                                                                            "src": "6194:7:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                                                                "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                                                                            }
                                                                        },
                                                                        "id": 6306,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "56696143617368",
                                                                            "id": 6304,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "6202:9:16",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                "typeString": "literal_string \"ViaCash\""
                                                                            },
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "6194:18:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                            "typeString": "mapping(bytes32 => address)"
                                                                        }
                                                                    },
                                                                    "id": 6307,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6305,
                                                                        "name": "tokenCurrency",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6187,
                                                                        "src": "6213:13:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "6194:33:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 6308,
                                                                    "name": "_issuer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6217,
                                                                    "src": "6230:7:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "src": "6194:43:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "id": 6310,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "6194:43:16"
                                                        }
                                                    ]
                                                },
                                                "id": 6312,
                                                "nodeType": "IfStatement",
                                                "src": "5739:514:16",
                                                "trueBody": {
                                                    "id": 6280,
                                                    "nodeType": "Block",
                                                    "src": "5790:197:16",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 6262,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6255,
                                                                        "name": "token",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5775,
                                                                        "src": "5809:5:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                            "typeString": "mapping(address => struct Factory.via storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 6257,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6256,
                                                                        "name": "_issuer",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6217,
                                                                        "src": "5815:7:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "5809:14:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                        "typeString": "struct Factory.via storage ref"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "56696143617368",
                                                                            "id": 6259,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "5830:9:16",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                "typeString": "literal_string \"ViaCash\""
                                                                            },
                                                                            "value": "ViaCash"
                                                                        },
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 6260,
                                                                            "name": "tokenName",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6183,
                                                                            "src": "5841:9:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                "typeString": "literal_string \"ViaCash\""
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        ],
                                                                        "id": 6258,
                                                                        "name": "via",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5771,
                                                                        "src": "5826:3:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_struct$_via_$5771_storage_ptr_$",
                                                                            "typeString": "type(struct Factory.via storage pointer)"
                                                                        }
                                                                    },
                                                                    "id": 6261,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "structConstructorCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "5826:25:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_via_$5771_memory",
                                                                        "typeString": "struct Factory.via memory"
                                                                    }
                                                                },
                                                                "src": "5809:42:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                    "typeString": "struct Factory.via storage ref"
                                                                }
                                                            },
                                                            "id": 6263,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "5809:42:16"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 6270,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6264,
                                                                        "name": "tokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5795,
                                                                        "src": "5870:6:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                            "typeString": "address[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 6268,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6265,
                                                                            "name": "tokenIndex",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5799,
                                                                            "src": "5877:10:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                                "typeString": "mapping(bytes32 => uint256)"
                                                                            }
                                                                        },
                                                                        "id": 6267,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6266,
                                                                            "name": "tokenName",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6183,
                                                                            "src": "5888:9:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "5877:21:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "5870:29:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 6269,
                                                                    "name": "_issuer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6217,
                                                                    "src": "5902:7:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "src": "5870:39:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "id": 6271,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "5870:39:16"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 6278,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 6272,
                                                                            "name": "issuers",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5805,
                                                                            "src": "5928:7:16",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$",
                                                                                "typeString": "mapping(bytes32 => mapping(bytes32 => address))"
                                                                            }
                                                                        },
                                                                        "id": 6275,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "56696143617368",
                                                                            "id": 6273,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "string",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "5936:9:16",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                "typeString": "literal_string \"ViaCash\""
                                                                            },
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "5928:18:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                            "typeString": "mapping(bytes32 => address)"
                                                                        }
                                                                    },
                                                                    "id": 6276,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 6274,
                                                                        "name": "tokenCurrency",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6187,
                                                                        "src": "5947:13:16",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "5928:33:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 6277,
                                                                    "name": "_issuer",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6217,
                                                                    "src": "5964:7:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "src": "5928:43:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "id": 6279,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "5928:43:16"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6388,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6196,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6195,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 269,
                                    "src": "5174:9:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5174:9:16"
                            }
                        ],
                        "name": "createIssuer",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6194,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6181,
                                    "name": "_target",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6388,
                                    "src": "5049:15:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6180,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5049:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6183,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6388,
                                    "src": "5066:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6182,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5066:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6185,
                                    "name": "tokenType",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6388,
                                    "src": "5085:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6184,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5085:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6187,
                                    "name": "tokenCurrency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6388,
                                    "src": "5104:21:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6186,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5104:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6189,
                                    "name": "_oracle",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6388,
                                    "src": "5127:15:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6188,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5127:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6191,
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6388,
                                    "src": "5144:14:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6190,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5144:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6193,
                                    "name": "_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6388,
                                    "src": "5160:12:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6192,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5160:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5048:125:16"
                        },
                        "returnParameters": {
                            "id": 6197,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5192:0:16"
                        },
                        "scope": 6629,
                        "src": "5027:1822:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8314,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6462,
                            "nodeType": "Block",
                            "src": "7001:542:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 6414,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 6408,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 6402,
                                                                "name": "token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5775,
                                                                "src": "7020:5:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                                    "typeString": "mapping(address => struct Factory.via storage ref)"
                                                                }
                                                            },
                                                            "id": 6405,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 6403,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 13007,
                                                                    "src": "7026:3:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 6404,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "7026:10:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "7020:17:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_via_$5771_storage",
                                                                "typeString": "struct Factory.via storage ref"
                                                            }
                                                        },
                                                        "id": 6406,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "tokenType",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 5768,
                                                        "src": "7020:27:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "566961426f6e64",
                                                        "id": 6407,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "7051:9:16",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                            "typeString": "literal_string \"ViaBond\""
                                                        },
                                                        "value": "ViaBond"
                                                    },
                                                    "src": "7020:40:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 6413,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 6409,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 13007,
                                                            "src": "7064:3:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 6410,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sender",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "7064:10:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "id": 6411,
                                                            "name": "owner",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 259,
                                                            "src": "7076:5:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                                "typeString": "function () view returns (address)"
                                                            }
                                                        },
                                                        "id": 6412,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "7076:7:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "7064:19:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "7020:63:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 6401,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13010,
                                            "src": "7012:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                "typeString": "function (bool) pure"
                                            }
                                        },
                                        "id": 6415,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7012:72:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6416,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7012:72:16"
                                },
                                {
                                    "assignments": [
                                        6418
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6418,
                                            "name": "_payload",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6462,
                                            "src": "7097:21:16",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes"
                                            },
                                            "typeName": {
                                                "id": 6417,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "7097:5:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_storage_ptr",
                                                    "typeString": "bytes"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6428,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "696e697469616c697a6528627974657333322c616464726573732c616464726573732c6279746573333229",
                                                "id": 6421,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7145:45:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_ef239721e1794ea7af4b3d9ed1df305dc3fd3f4b47790a21aae7f8e36470a328",
                                                    "typeString": "literal_string \"initialize(bytes32,address,address,bytes32)\""
                                                },
                                                "value": "initialize(bytes32,address,address,bytes32)"
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6422,
                                                "name": "tokenName",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6394,
                                                "src": "7192:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6423,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6392,
                                                "src": "7203:6:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 6424,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13007,
                                                    "src": "7211:3:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 6425,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "7211:10:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6426,
                                                "name": "tokenSymbol",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6396,
                                                "src": "7223:11:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_stringliteral_ef239721e1794ea7af4b3d9ed1df305dc3fd3f4b47790a21aae7f8e36470a328",
                                                    "typeString": "literal_string \"initialize(bytes32,address,address,bytes32)\""
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 6419,
                                                "name": "abi",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12994,
                                                "src": "7121:3:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_magic_abi",
                                                    "typeString": "abi"
                                                }
                                            },
                                            "id": 6420,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "memberName": "encodeWithSignature",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "7121:23:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (string memory) pure returns (bytes memory)"
                                            }
                                        },
                                        "id": 6427,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7121:114:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "7097:138:16"
                                },
                                {
                                    "assignments": [
                                        6430
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6430,
                                            "name": "_token",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6462,
                                            "src": "7273:14:16",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 6429,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "7273:7:16",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6435,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6432,
                                                "name": "_target",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6390,
                                                "src": "7304:7:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6433,
                                                "name": "_payload",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6418,
                                                "src": "7313:8:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            ],
                                            "id": 6431,
                                            "name": "deployMinimal",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 985,
                                            "src": "7290:13:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$",
                                                "typeString": "function (address,bytes memory) returns (address)"
                                            }
                                        },
                                        "id": 6434,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7290:32:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "7273:49:16"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6437,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6430,
                                                "src": "7351:6:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6438,
                                                "name": "tokenSymbol",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6396,
                                                "src": "7359:11:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "566961426f6e64",
                                                "id": 6439,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7372:9:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                    "typeString": "literal_string \"ViaBond\""
                                                },
                                                "value": "ViaBond"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                    "typeString": "literal_string \"ViaBond\""
                                                }
                                            ],
                                            "id": 6436,
                                            "name": "TokenCreated",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5844,
                                            "src": "7338:12:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
                                                "typeString": "function (address,bytes32,bytes32)"
                                            }
                                        },
                                        "id": 6440,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7338:44:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6441,
                                    "nodeType": "EmitStatement",
                                    "src": "7333:49:16"
                                },
                                {
                                    "assignments": [
                                        6443
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6443,
                                            "name": "t",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6462,
                                            "src": "7403:13:16",
                                            "stateVariable": false,
                                            "storageLocation": "storage",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_via_$5771_storage_ptr",
                                                "typeString": "struct Factory.via"
                                            },
                                            "typeName": {
                                                "contractScope": null,
                                                "id": 6442,
                                                "name": "via",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 5771,
                                                "src": "7403:3:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_via_$5771_storage_ptr",
                                                    "typeString": "struct Factory.via"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6447,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 6444,
                                            "name": "token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5775,
                                            "src": "7419:5:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_via_$5771_storage_$",
                                                "typeString": "mapping(address => struct Factory.via storage ref)"
                                            }
                                        },
                                        "id": 6446,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 6445,
                                            "name": "_token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6430,
                                            "src": "7425:6:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "7419:13:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_via_$5771_storage",
                                            "typeString": "struct Factory.via storage ref"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "7403:29:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6452,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 6448,
                                                "name": "t",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6443,
                                                "src": "7443:1:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_via_$5771_storage_ptr",
                                                    "typeString": "struct Factory.via storage pointer"
                                                }
                                            },
                                            "id": 6450,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "tokenType",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 5768,
                                            "src": "7443:11:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "hexValue": "566961426f6e64546f6b656e",
                                            "id": 6451,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "7457:14:16",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_4c19ae4ab2cb4ec4ecfdd0e1418f065638103e1c91c3461c18dc6cee3fc03c59",
                                                "typeString": "literal_string \"ViaBondToken\""
                                            },
                                            "value": "ViaBondToken"
                                        },
                                        "src": "7443:28:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "id": 6453,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7443:28:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6457,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6430,
                                                "src": "7494:6:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 6454,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5795,
                                                "src": "7482:6:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 6456,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "7482:11:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) returns (uint256)"
                                            }
                                        },
                                        "id": 6458,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7482:19:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 6459,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7482:19:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6460,
                                        "name": "_token",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6430,
                                        "src": "7529:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 6400,
                                    "id": 6461,
                                    "nodeType": "Return",
                                    "src": "7522:13:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6463,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "createToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6397,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6390,
                                    "name": "_target",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6463,
                                    "src": "6903:15:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6389,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6903:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6392,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6463,
                                    "src": "6920:14:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6391,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6920:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6394,
                                    "name": "tokenName",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6463,
                                    "src": "6936:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6393,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6936:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6396,
                                    "name": "tokenSymbol",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6463,
                                    "src": "6955:19:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6395,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6955:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6902:73:16"
                        },
                        "returnParameters": {
                            "id": 6400,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6399,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6463,
                                    "src": "6993:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6398,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6993:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6992:9:16"
                        },
                        "scope": 6629,
                        "src": "6882:661:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8327,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6474,
                            "nodeType": "Block",
                            "src": "7617:38:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6472,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 6470,
                                            "name": "ViaOracleUrl",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5779,
                                            "src": "7628:12:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage",
                                                "typeString": "string storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 6471,
                                            "name": "_url",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6465,
                                            "src": "7643:4:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_calldata_ptr",
                                                "typeString": "string calldata"
                                            }
                                        },
                                        "src": "7628:19:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "id": 6473,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7628:19:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6475,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6468,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6467,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 269,
                                    "src": "7598:9:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7598:9:16"
                            }
                        ],
                        "name": "setViaOracleUrl",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6466,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6465,
                                    "name": "_url",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6475,
                                    "src": "7576:20:16",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_calldata_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6464,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7576:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7575:22:16"
                        },
                        "returnParameters": {
                            "id": 6469,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7617:0:16"
                        },
                        "scope": 6629,
                        "src": "7551:104:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8332,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6486,
                            "nodeType": "Block",
                            "src": "7733:39:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6484,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 6482,
                                            "name": "FiatPayoutUrl",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5781,
                                            "src": "7744:13:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage",
                                                "typeString": "string storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 6483,
                                            "name": "_url",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6477,
                                            "src": "7760:4:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_calldata_ptr",
                                                "typeString": "string calldata"
                                            }
                                        },
                                        "src": "7744:20:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "id": 6485,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7744:20:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6487,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6480,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6479,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 269,
                                    "src": "7714:9:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7714:9:16"
                            }
                        ],
                        "name": "setFiatPayoutUrl",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6478,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6477,
                                    "name": "_url",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6487,
                                    "src": "7692:20:16",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_calldata_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6476,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7692:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7691:22:16"
                        },
                        "returnParameters": {
                            "id": 6481,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7733:0:16"
                        },
                        "scope": 6629,
                        "src": "7666:106:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8342,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6508,
                            "nodeType": "Block",
                            "src": "7905:67:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6506,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6500,
                                                    "name": "CryptoDataUrl",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5787,
                                                    "src": "7916:13:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_string_storage_$_$",
                                                        "typeString": "mapping(bytes32 => mapping(bytes32 => string storage ref))"
                                                    }
                                                },
                                                "id": 6503,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6501,
                                                    "name": "_fromCurrency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6491,
                                                    "src": "7930:13:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "7916:28:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                                                    "typeString": "mapping(bytes32 => string storage ref)"
                                                }
                                            },
                                            "id": 6504,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 6502,
                                                "name": "_toCurrency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6493,
                                                "src": "7945:11:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "7916:41:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage",
                                                "typeString": "string storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 6505,
                                            "name": "_url",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6489,
                                            "src": "7960:4:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_calldata_ptr",
                                                "typeString": "string calldata"
                                            }
                                        },
                                        "src": "7916:48:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "id": 6507,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7916:48:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6509,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 6496,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "7884:3:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 6497,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "7884:10:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 6498,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6495,
                                    "name": "onlyManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5885,
                                    "src": "7872:11:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7872:23:16"
                            }
                        ],
                        "name": "setCryptoDataURL",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6494,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6489,
                                    "name": "_url",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6509,
                                    "src": "7806:20:16",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_calldata_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6488,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7806:6:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6491,
                                    "name": "_fromCurrency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6509,
                                    "src": "7828:21:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6490,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7828:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6493,
                                    "name": "_toCurrency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6509,
                                    "src": "7851:19:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6492,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7851:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7805:66:16"
                        },
                        "returnParameters": {
                            "id": 6499,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7905:0:16"
                        },
                        "scope": 6629,
                        "src": "7780:192:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8351,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6521,
                            "nodeType": "Block",
                            "src": "8048:37:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6519,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 6517,
                                            "name": "oracles",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5790,
                                            "src": "8059:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                "typeString": "address[] storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 6518,
                                            "name": "_oracles",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6512,
                                            "src": "8069:8:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                            }
                                        },
                                        "src": "8059:18:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                            "typeString": "address[] storage ref"
                                        }
                                    },
                                    "id": 6520,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8059:18:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6522,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6515,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6514,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 269,
                                    "src": "8029:9:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "8029:9:16"
                            }
                        ],
                        "name": "setOracles",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6513,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6512,
                                    "name": "_oracles",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6522,
                                    "src": "8000:27:16",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 6510,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8000:7:16",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 6511,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "8000:9:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7999:29:16"
                        },
                        "returnParameters": {
                            "id": 6516,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8048:0:16"
                        },
                        "scope": 6629,
                        "src": "7980:105:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8373,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6547,
                            "nodeType": "Block",
                            "src": "8158:140:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6537,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [],
                                                    "expression": {
                                                        "argumentTypes": [],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6531,
                                                                    "name": "_bondToken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6524,
                                                                    "src": "8186:10:16",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 6530,
                                                                "name": "ViaToken",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8499,
                                                                "src": "8177:8:16",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ViaToken_$8499_$",
                                                                    "typeString": "type(contract ViaToken)"
                                                                }
                                                            },
                                                            "id": 6532,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "8177:20:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ViaToken_$8499",
                                                                "typeString": "contract ViaToken"
                                                            }
                                                        },
                                                        "id": 6533,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getIssuer",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 8434,
                                                        "src": "8177:30:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                            "typeString": "function () view external returns (address)"
                                                        }
                                                    },
                                                    "id": 6534,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "8177:32:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 6535,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 13007,
                                                        "src": "8211:3:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 6536,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "8211:10:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "src": "8177:44:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4f6e6c79206973737565722063616e2073657420626f6e64207465726d",
                                                "id": 6538,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8223:31:16",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_7d0138d89de4c582a2d8d327af85600121a748f37a1184aad78fbd63a64c2cf4",
                                                    "typeString": "literal_string \"Only issuer can set bond term\""
                                                },
                                                "value": "Only issuer can set bond term"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_7d0138d89de4c582a2d8d327af85600121a748f37a1184aad78fbd63a64c2cf4",
                                                    "typeString": "literal_string \"Only issuer can set bond term\""
                                                }
                                            ],
                                            "id": 6529,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                13010,
                                                13011
                                            ],
                                            "referencedDeclaration": 13011,
                                            "src": "8169:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6539,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8169:86:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6540,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8169:86:16"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6545,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 6541,
                                                "name": "term",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5809,
                                                "src": "8266:4:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 6543,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 6542,
                                                "name": "_bondToken",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6524,
                                                "src": "8271:10:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "8266:16:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 6544,
                                            "name": "_term",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6526,
                                            "src": "8285:5:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "8266:24:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 6546,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8266:24:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6548,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "setBondTerm",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6527,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6524,
                                    "name": "_bondToken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6548,
                                    "src": "8114:18:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6523,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8114:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6526,
                                    "name": "_term",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6548,
                                    "src": "8134:13:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6525,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8134:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8113:35:16"
                        },
                        "returnParameters": {
                            "id": 6528,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8158:0:16"
                        },
                        "scope": 6629,
                        "src": "8093:205:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8380,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6559,
                            "nodeType": "Block",
                            "src": "8368:35:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6557,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 6555,
                                            "name": "client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5792,
                                            "src": "8379:6:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 6556,
                                            "name": "_client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6550,
                                            "src": "8388:7:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "8379:16:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 6558,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8379:16:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6560,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6553,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6552,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 269,
                                    "src": "8349:9:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "8349:9:16"
                            }
                        ],
                        "name": "setClientAddress",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6551,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6550,
                                    "name": "_client",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6560,
                                    "src": "8332:15:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6549,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8332:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8331:17:16"
                        },
                        "returnParameters": {
                            "id": 6554,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8368:0:16"
                        },
                        "scope": 6629,
                        "src": "8306:97:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8356,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6597,
                            "nodeType": "Block",
                            "src": "8504:213:16",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 6575,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 6571,
                                                "name": "currencyIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5816,
                                                "src": "8518:13:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                    "typeString": "mapping(bytes32 => uint256)"
                                                }
                                            },
                                            "id": 6573,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 6572,
                                                "name": "_currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6562,
                                                "src": "8532:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8518:24:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 6574,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8544:1:16",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "8518:27:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 6596,
                                    "nodeType": "IfStatement",
                                    "src": "8515:195:16",
                                    "trueBody": {
                                        "id": 6595,
                                        "nodeType": "Block",
                                        "src": "8546:164:16",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6579,
                                                            "name": "_currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6562,
                                                            "src": "8577:9:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 6576,
                                                            "name": "currencies",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5812,
                                                            "src": "8561:10:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 6578,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "8561:15:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                                                            "typeString": "function (bytes32) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 6580,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "8561:26:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 6581,
                                                "nodeType": "ExpressionStatement",
                                                "src": "8561:26:16"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 6587,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6582,
                                                            "name": "currencyIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5816,
                                                            "src": "8602:13:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                                "typeString": "mapping(bytes32 => uint256)"
                                                            }
                                                        },
                                                        "id": 6584,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6583,
                                                            "name": "_currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6562,
                                                            "src": "8616:9:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "8602:24:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 6585,
                                                            "name": "currencies",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5812,
                                                            "src": "8629:10:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 6586,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "8629:17:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "8602:44:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 6588,
                                                "nodeType": "ExpressionStatement",
                                                "src": "8602:44:16"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 6593,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6589,
                                                            "name": "currencyAddress",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5820,
                                                            "src": "8661:15:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 6591,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 6590,
                                                            "name": "_currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6562,
                                                            "src": "8677:9:16",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "8661:26:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 6592,
                                                        "name": "_address",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6564,
                                                        "src": "8690:8:16",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "8661:37:16",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 6594,
                                                "nodeType": "ExpressionStatement",
                                                "src": "8661:37:16"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6598,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 6567,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13007,
                                            "src": "8483:3:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 6568,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "8483:10:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 6569,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6566,
                                    "name": "onlyManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5885,
                                    "src": "8471:11:16",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "8471:23:16"
                            }
                        ],
                        "name": "supportTokens",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6565,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6562,
                                    "name": "_currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6598,
                                    "src": "8434:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6561,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8434:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6564,
                                    "name": "_address",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6598,
                                    "src": "8453:16:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6563,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8453:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8433:37:16"
                        },
                        "returnParameters": {
                            "id": 6570,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8504:0:16"
                        },
                        "scope": 6629,
                        "src": "8411:306:16",
                        "stateMutability": "nonpayable",
                        "superFunction": 8387,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6615,
                            "nodeType": "Block",
                            "src": "8801:115:16",
                            "statements": [
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 6609,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 6605,
                                                "name": "currencyIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5816,
                                                "src": "8815:13:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                                    "typeString": "mapping(bytes32 => uint256)"
                                                }
                                            },
                                            "id": 6607,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 6606,
                                                "name": "_currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6600,
                                                "src": "8829:9:16",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8815:24:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 6608,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8840:1:16",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "8815:26:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "66616c7365",
                                            "id": 6612,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8903:5:16",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "functionReturnParameters": 6604,
                                        "id": 6613,
                                        "nodeType": "Return",
                                        "src": "8896:12:16"
                                    },
                                    "id": 6614,
                                    "nodeType": "IfStatement",
                                    "src": "8812:96:16",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "hexValue": "74727565",
                                            "id": 6610,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8863:4:16",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "functionReturnParameters": 6604,
                                        "id": 6611,
                                        "nodeType": "Return",
                                        "src": "8856:11:16"
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6616,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "checkSupportForToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6601,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6600,
                                    "name": "_currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6616,
                                    "src": "8755:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6599,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8755:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8754:19:16"
                        },
                        "returnParameters": {
                            "id": 6604,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6603,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6616,
                                    "src": "8796:4:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 6602,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8796:4:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8795:6:16"
                        },
                        "scope": 6629,
                        "src": "8725:191:16",
                        "stateMutability": "view",
                        "superFunction": 8394,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6627,
                            "nodeType": "Block",
                            "src": "8999:52:16",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 6623,
                                            "name": "currencyAddress",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5820,
                                            "src": "9017:15:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 6625,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 6624,
                                            "name": "_currency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6618,
                                            "src": "9033:9:16",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9017:26:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 6622,
                                    "id": 6626,
                                    "nodeType": "Return",
                                    "src": "9010:33:16"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6628,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getCurrencyToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6619,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6618,
                                    "name": "_currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6628,
                                    "src": "8950:17:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6617,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8950:7:16",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8949:19:16"
                        },
                        "returnParameters": {
                            "id": 6622,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6621,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6628,
                                    "src": "8991:7:16",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6620,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8991:7:16",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8990:9:16"
                        },
                        "scope": 6629,
                        "src": "8924:127:16",
                        "stateMutability": "view",
                        "superFunction": 8401,
                        "visibility": "external"
                    }
                ],
                "scope": 6630,
                "src": "483:8573:16"
            }
        ],
        "src": "114:8956:16"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/Factory.sol",
            "exportedSymbols": {
                "Factory": [
                    6629
                ]
            }
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.5",
                        ".7"
                    ]
                },
                "id": 5752,
                "name": "PragmaDirective",
                "src": "114:22:16"
            },
            {
                "attributes": {
                    "SourceUnit": 8403,
                    "absolutePath": "project:/contracts/interfaces/ViaFactory.sol",
                    "file": "./interfaces/ViaFactory.sol",
                    "scope": 6630,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 5753,
                "name": "ImportDirective",
                "src": "140:37:16"
            },
            {
                "attributes": {
                    "SourceUnit": 8500,
                    "absolutePath": "project:/contracts/interfaces/ViaToken.sol",
                    "file": "./interfaces/ViaToken.sol",
                    "scope": 6630,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 5754,
                "name": "ImportDirective",
                "src": "179:35:16"
            },
            {
                "attributes": {
                    "SourceUnit": 8023,
                    "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                    "file": "./interfaces/VerifiedClient.sol",
                    "scope": 6630,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 5755,
                "name": "ImportDirective",
                "src": "216:41:16"
            },
            {
                "attributes": {
                    "SourceUnit": 479,
                    "absolutePath": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "file": "@openzeppelin/upgrades/contracts/Initializable.sol",
                    "scope": 6630,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 5756,
                "name": "ImportDirective",
                "src": "259:60:16"
            },
            {
                "attributes": {
                    "SourceUnit": 1225,
                    "absolutePath": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                    "file": "@openzeppelin/upgrades/contracts/upgradeability/ProxyFactory.sol",
                    "scope": 6630,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 5757,
                "name": "ImportDirective",
                "src": "321:74:16"
            },
            {
                "attributes": {
                    "SourceUnit": 341,
                    "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "scope": 6630,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 5758,
                "name": "ImportDirective",
                "src": "397:82:16"
            },
            {
                "attributes": {
                    "contractDependencies": [
                        29,
                        340,
                        478,
                        1224,
                        8402
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        6629,
                        340,
                        29,
                        478,
                        1224,
                        8402
                    ],
                    "name": "Factory",
                    "scope": 6630
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ViaFactory",
                                    "referencedDeclaration": 8402,
                                    "type": "contract ViaFactory"
                                },
                                "id": 5759,
                                "name": "UserDefinedTypeName",
                                "src": "503:10:16"
                            }
                        ],
                        "id": 5760,
                        "name": "InheritanceSpecifier",
                        "src": "503:10:16"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ProxyFactory",
                                    "referencedDeclaration": 1224,
                                    "type": "contract ProxyFactory"
                                },
                                "id": 5761,
                                "name": "UserDefinedTypeName",
                                "src": "515:12:16"
                            }
                        ],
                        "id": 5762,
                        "name": "InheritanceSpecifier",
                        "src": "515:12:16"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Initializable",
                                    "referencedDeclaration": 478,
                                    "type": "contract Initializable"
                                },
                                "id": 5763,
                                "name": "UserDefinedTypeName",
                                "src": "529:13:16"
                            }
                        ],
                        "id": 5764,
                        "name": "InheritanceSpecifier",
                        "src": "529:13:16"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Ownable",
                                    "referencedDeclaration": 340,
                                    "type": "contract Ownable"
                                },
                                "id": 5765,
                                "name": "UserDefinedTypeName",
                                "src": "544:7:16"
                            }
                        ],
                        "id": 5766,
                        "name": "InheritanceSpecifier",
                        "src": "544:7:16"
                    },
                    {
                        "attributes": {
                            "canonicalName": "Factory.via",
                            "name": "via",
                            "scope": 6629,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "tokenType",
                                    "scope": 5771,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "bytes32",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5767,
                                        "name": "ElementaryTypeName",
                                        "src": "622:7:16"
                                    }
                                ],
                                "id": 5768,
                                "name": "VariableDeclaration",
                                "src": "622:17:16"
                            },
                            {
                                "attributes": {
                                    "constant": false,
                                    "name": "name",
                                    "scope": 5771,
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "type": "bytes32",
                                    "value": null,
                                    "visibility": "internal"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5769,
                                        "name": "ElementaryTypeName",
                                        "src": "650:7:16"
                                    }
                                ],
                                "id": 5770,
                                "name": "VariableDeclaration",
                                "src": "650:12:16"
                            }
                        ],
                        "id": 5771,
                        "name": "StructDefinition",
                        "src": "601:77:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "token",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => struct Factory.via)",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => struct Factory.via)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 5772,
                                        "name": "ElementaryTypeName",
                                        "src": "730:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "contractScope": null,
                                            "name": "via",
                                            "referencedDeclaration": 5771,
                                            "type": "struct Factory.via"
                                        },
                                        "id": 5773,
                                        "name": "UserDefinedTypeName",
                                        "src": "741:3:16"
                                    }
                                ],
                                "id": 5774,
                                "name": "Mapping",
                                "src": "722:23:16"
                            }
                        ],
                        "id": 5775,
                        "name": "VariableDeclaration",
                        "src": "722:36:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "ViaOracle",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "value": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 5776,
                                "name": "ElementaryTypeName",
                                "src": "797:7:16"
                            }
                        ],
                        "id": 5777,
                        "name": "VariableDeclaration",
                        "src": "797:17:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "ViaOracleUrl",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "string",
                            "value": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "string",
                                    "type": "string"
                                },
                                "id": 5778,
                                "name": "ElementaryTypeName",
                                "src": "821:6:16"
                            }
                        ],
                        "id": 5779,
                        "name": "VariableDeclaration",
                        "src": "821:19:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "FiatPayoutUrl",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "string",
                            "value": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "string",
                                    "type": "string"
                                },
                                "id": 5780,
                                "name": "ElementaryTypeName",
                                "src": "867:6:16"
                            }
                        ],
                        "id": 5781,
                        "name": "VariableDeclaration",
                        "src": "867:20:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "CryptoDataUrl",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => mapping(bytes32 => string))",
                            "value": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => mapping(bytes32 => string))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5782,
                                        "name": "ElementaryTypeName",
                                        "src": "927:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(bytes32 => string)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5783,
                                                "name": "ElementaryTypeName",
                                                "src": "946:7:16"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 5784,
                                                "name": "ElementaryTypeName",
                                                "src": "957:6:16"
                                            }
                                        ],
                                        "id": 5785,
                                        "name": "Mapping",
                                        "src": "938:26:16"
                                    }
                                ],
                                "id": 5786,
                                "name": "Mapping",
                                "src": "919:46:16"
                            }
                        ],
                        "id": 5787,
                        "name": "VariableDeclaration",
                        "src": "919:60:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "oracles",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address[]",
                            "value": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "length": null,
                                    "type": "address[]"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 5788,
                                        "name": "ElementaryTypeName",
                                        "src": "1010:7:16"
                                    }
                                ],
                                "id": 5789,
                                "name": "ArrayTypeName",
                                "src": "1010:9:16"
                            }
                        ],
                        "id": 5790,
                        "name": "VariableDeclaration",
                        "src": "1010:17:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "client",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "value": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 5791,
                                "name": "ElementaryTypeName",
                                "src": "1068:7:16"
                            }
                        ],
                        "id": 5792,
                        "name": "VariableDeclaration",
                        "src": "1068:14:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "tokens",
                            "scope": 6629,
                            "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": 5793,
                                        "name": "ElementaryTypeName",
                                        "src": "1136:7:16"
                                    }
                                ],
                                "id": 5794,
                                "name": "ArrayTypeName",
                                "src": "1136:9:16"
                            }
                        ],
                        "id": 5795,
                        "name": "VariableDeclaration",
                        "src": "1136:23:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "tokenIndex",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => uint256)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5796,
                                        "name": "ElementaryTypeName",
                                        "src": "1232:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 5797,
                                        "name": "ElementaryTypeName",
                                        "src": "1243:7:16"
                                    }
                                ],
                                "id": 5798,
                                "name": "Mapping",
                                "src": "1224:27:16"
                            }
                        ],
                        "id": 5799,
                        "name": "VariableDeclaration",
                        "src": "1224:46:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "issuers",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => mapping(bytes32 => address))",
                            "value": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => mapping(bytes32 => address))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5800,
                                        "name": "ElementaryTypeName",
                                        "src": "1350:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(bytes32 => address)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5801,
                                                "name": "ElementaryTypeName",
                                                "src": "1369:7:16"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5802,
                                                "name": "ElementaryTypeName",
                                                "src": "1380:7:16"
                                            }
                                        ],
                                        "id": 5803,
                                        "name": "Mapping",
                                        "src": "1361:27:16"
                                    }
                                ],
                                "id": 5804,
                                "name": "Mapping",
                                "src": "1342:47:16"
                            }
                        ],
                        "id": 5805,
                        "name": "VariableDeclaration",
                        "src": "1342:55:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "term",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 5806,
                                        "name": "ElementaryTypeName",
                                        "src": "1459:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 5807,
                                        "name": "ElementaryTypeName",
                                        "src": "1470:7:16"
                                    }
                                ],
                                "id": 5808,
                                "name": "Mapping",
                                "src": "1451:27:16"
                            }
                        ],
                        "id": 5809,
                        "name": "VariableDeclaration",
                        "src": "1451:40:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "currencies",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "bytes32[]",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "length": null,
                                    "type": "bytes32[]"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5810,
                                        "name": "ElementaryTypeName",
                                        "src": "1539:7:16"
                                    }
                                ],
                                "id": 5811,
                                "name": "ArrayTypeName",
                                "src": "1539:9:16"
                            }
                        ],
                        "id": 5812,
                        "name": "VariableDeclaration",
                        "src": "1539:27:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "currencyIndex",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => uint256)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5813,
                                        "name": "ElementaryTypeName",
                                        "src": "1581:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 5814,
                                        "name": "ElementaryTypeName",
                                        "src": "1592:7:16"
                                    }
                                ],
                                "id": 5815,
                                "name": "Mapping",
                                "src": "1573:27:16"
                            }
                        ],
                        "id": 5816,
                        "name": "VariableDeclaration",
                        "src": "1573:49:16"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "currencyAddress",
                            "scope": 6629,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => address)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 5817,
                                        "name": "ElementaryTypeName",
                                        "src": "1637:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 5818,
                                        "name": "ElementaryTypeName",
                                        "src": "1648:7:16"
                                    }
                                ],
                                "id": 5819,
                                "name": "Mapping",
                                "src": "1629:27:16"
                            }
                        ],
                        "id": 5820,
                        "name": "VariableDeclaration",
                        "src": "1629:51:16"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "CashIssuerCreated"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "issuer",
                                            "scope": 5828,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5821,
                                                "name": "ElementaryTypeName",
                                                "src": "1713:7:16"
                                            }
                                        ],
                                        "id": 5822,
                                        "name": "VariableDeclaration",
                                        "src": "1713:22:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenName",
                                            "scope": 5828,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5823,
                                                "name": "ElementaryTypeName",
                                                "src": "1737:7:16"
                                            }
                                        ],
                                        "id": 5824,
                                        "name": "VariableDeclaration",
                                        "src": "1737:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenType",
                                            "scope": 5828,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5825,
                                                "name": "ElementaryTypeName",
                                                "src": "1756:7:16"
                                            }
                                        ],
                                        "id": 5826,
                                        "name": "VariableDeclaration",
                                        "src": "1756:17:16"
                                    }
                                ],
                                "id": 5827,
                                "name": "ParameterList",
                                "src": "1712:62:16"
                            }
                        ],
                        "id": 5828,
                        "name": "EventDefinition",
                        "src": "1689:86:16"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "BondIssuerCreated"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "issuer",
                                            "scope": 5836,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5829,
                                                "name": "ElementaryTypeName",
                                                "src": "1805:7:16"
                                            }
                                        ],
                                        "id": 5830,
                                        "name": "VariableDeclaration",
                                        "src": "1805:22:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenName",
                                            "scope": 5836,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5831,
                                                "name": "ElementaryTypeName",
                                                "src": "1829:7:16"
                                            }
                                        ],
                                        "id": 5832,
                                        "name": "VariableDeclaration",
                                        "src": "1829:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenType",
                                            "scope": 5836,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5833,
                                                "name": "ElementaryTypeName",
                                                "src": "1848:7:16"
                                            }
                                        ],
                                        "id": 5834,
                                        "name": "VariableDeclaration",
                                        "src": "1848:17:16"
                                    }
                                ],
                                "id": 5835,
                                "name": "ParameterList",
                                "src": "1804:62:16"
                            }
                        ],
                        "id": 5836,
                        "name": "EventDefinition",
                        "src": "1781:86:16"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "TokenCreated"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "token",
                                            "scope": 5844,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5837,
                                                "name": "ElementaryTypeName",
                                                "src": "1892:7:16"
                                            }
                                        ],
                                        "id": 5838,
                                        "name": "VariableDeclaration",
                                        "src": "1892:21:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenName",
                                            "scope": 5844,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5839,
                                                "name": "ElementaryTypeName",
                                                "src": "1915:7:16"
                                            }
                                        ],
                                        "id": 5840,
                                        "name": "VariableDeclaration",
                                        "src": "1915:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "tokenType",
                                            "scope": 5844,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5841,
                                                "name": "ElementaryTypeName",
                                                "src": "1934:7:16"
                                            }
                                        ],
                                        "id": 5842,
                                        "name": "VariableDeclaration",
                                        "src": "1934:17:16"
                                    }
                                ],
                                "id": 5843,
                                "name": "ParameterList",
                                "src": "1891:61:16"
                            }
                        ],
                        "id": 5844,
                        "name": "EventDefinition",
                        "src": "1873:80:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "onlyManager",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 5885,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5845,
                                                "name": "ElementaryTypeName",
                                                "src": "1982:7:16"
                                            }
                                        ],
                                        "id": 5846,
                                        "name": "VariableDeclaration",
                                        "src": "1982:14:16"
                                    }
                                ],
                                "id": 5847,
                                "name": "ParameterList",
                                "src": "1981:16:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5849
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "role",
                                                    "scope": 5884,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 5848,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2008:7:16"
                                                    }
                                                ],
                                                "id": 5849,
                                                "name": "VariableDeclaration",
                                                "src": "2008:12:16"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "string",
                                                    "type": "literal_string \"\"",
                                                    "value": ""
                                                },
                                                "id": 5850,
                                                "name": "Literal",
                                                "src": "2023:2:16"
                                            }
                                        ],
                                        "id": 5851,
                                        "name": "VariableDeclarationStatement",
                                        "src": "2008:17:16"
                                    },
                                    {
                                        "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": 5792,
                                                            "type": "address",
                                                            "value": "client"
                                                        },
                                                        "id": 5852,
                                                        "name": "Identifier",
                                                        "src": "2039:6:16"
                                                    },
                                                    {
                                                        "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": 5853,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "2047:7:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 5854,
                                                                "name": "Literal",
                                                                "src": "2055:3:16"
                                                            }
                                                        ],
                                                        "id": 5855,
                                                        "name": "FunctionCall",
                                                        "src": "2047:12:16"
                                                    }
                                                ],
                                                "id": 5856,
                                                "name": "BinaryOperation",
                                                "src": "2039:20:16"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "tuple()"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isInlineArray": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "type": "tuple(bytes32,,)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5849,
                                                                            "type": "bytes32",
                                                                            "value": "role"
                                                                        },
                                                                        "id": 5857,
                                                                        "name": "Identifier",
                                                                        "src": "2075:4:16"
                                                                    }
                                                                ],
                                                                "id": 5858,
                                                                "name": "TupleExpression",
                                                                "src": "2074:10:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple(bytes32,bytes32,bytes32)",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getRole",
                                                                            "referencedDeclaration": 7940,
                                                                            "type": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                                        },
                                                                        "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": 5859,
                                                                                        "name": "Identifier",
                                                                                        "src": "2087:14:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5792,
                                                                                            "type": "address",
                                                                                            "value": "client"
                                                                                        },
                                                                                        "id": 5860,
                                                                                        "name": "Identifier",
                                                                                        "src": "2102:6:16"
                                                                                    }
                                                                                ],
                                                                                "id": 5861,
                                                                                "name": "FunctionCall",
                                                                                "src": "2087:22:16"
                                                                            }
                                                                        ],
                                                                        "id": 5862,
                                                                        "name": "MemberAccess",
                                                                        "src": "2087:30:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5846,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5863,
                                                                        "name": "Identifier",
                                                                        "src": "2118:6:16"
                                                                    }
                                                                ],
                                                                "id": 5864,
                                                                "name": "FunctionCall",
                                                                "src": "2087:38:16"
                                                            }
                                                        ],
                                                        "id": 5865,
                                                        "name": "Assignment",
                                                        "src": "2074:51:16"
                                                    }
                                                ],
                                                "id": 5866,
                                                "name": "ExpressionStatement",
                                                "src": "2074:51:16"
                                            }
                                        ],
                                        "id": 5867,
                                        "name": "IfStatement",
                                        "src": "2036:89:16"
                                    },
                                    {
                                        "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": 5868,
                                                        "name": "Identifier",
                                                        "src": "2136:7:16"
                                                    },
                                                    {
                                                        "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_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,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5849,
                                                                                    "type": "bytes32",
                                                                                    "value": "role"
                                                                                },
                                                                                "id": 5869,
                                                                                "name": "Identifier",
                                                                                "src": "2144:4:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "4450",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"DP\"",
                                                                                    "value": "DP"
                                                                                },
                                                                                "id": 5870,
                                                                                "name": "Literal",
                                                                                "src": "2150:4:16"
                                                                            }
                                                                        ],
                                                                        "id": 5871,
                                                                        "name": "BinaryOperation",
                                                                        "src": "2144:10:16"
                                                                    },
                                                                    {
                                                                        "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": 5849,
                                                                                    "type": "bytes32",
                                                                                    "value": "role"
                                                                                },
                                                                                "id": 5872,
                                                                                "name": "Identifier",
                                                                                "src": "2158:4:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "41646d696e",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"Admin\"",
                                                                                    "value": "Admin"
                                                                                },
                                                                                "id": 5873,
                                                                                "name": "Literal",
                                                                                "src": "2164:7:16"
                                                                            }
                                                                        ],
                                                                        "id": 5874,
                                                                        "name": "BinaryOperation",
                                                                        "src": "2158:13:16"
                                                                    }
                                                                ],
                                                                "id": 5875,
                                                                "name": "BinaryOperation",
                                                                "src": "2144:27:16"
                                                            },
                                                            {
                                                                "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": 5846,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5876,
                                                                        "name": "Identifier",
                                                                        "src": "2175:6:16"
                                                                    },
                                                                    {
                                                                        "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": 5877,
                                                                                "name": "Identifier",
                                                                                "src": "2183:5:16"
                                                                            }
                                                                        ],
                                                                        "id": 5878,
                                                                        "name": "FunctionCall",
                                                                        "src": "2183:7:16"
                                                                    }
                                                                ],
                                                                "id": 5879,
                                                                "name": "BinaryOperation",
                                                                "src": "2175:15:16"
                                                            }
                                                        ],
                                                        "id": 5880,
                                                        "name": "BinaryOperation",
                                                        "src": "2144:46:16"
                                                    }
                                                ],
                                                "id": 5881,
                                                "name": "FunctionCall",
                                                "src": "2136:55:16"
                                            }
                                        ],
                                        "id": 5882,
                                        "name": "ExpressionStatement",
                                        "src": "2136:55:16"
                                    },
                                    {
                                        "id": 5883,
                                        "name": "PlaceholderStatement",
                                        "src": "2202:1:16"
                                    }
                                ],
                                "id": 5884,
                                "name": "Block",
                                "src": "1997:214:16"
                            }
                        ],
                        "id": 5885,
                        "name": "ModifierDefinition",
                        "src": "1961:250:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "initialize",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5886,
                                "name": "ParameterList",
                                "src": "2238:2:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5889,
                                "name": "ParameterList",
                                "src": "2259:0:16"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 453,
                                            "type": "modifier ()",
                                            "value": "initializer"
                                        },
                                        "id": 5887,
                                        "name": "Identifier",
                                        "src": "2248:11:16"
                                    }
                                ],
                                "id": 5888,
                                "name": "ModifierInvocation",
                                "src": "2248:11:16"
                            },
                            {
                                "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_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "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": 5890,
                                                                "name": "Identifier",
                                                                "src": "2270:7:16"
                                                            }
                                                        ],
                                                        "id": 5892,
                                                        "name": "MemberAccess",
                                                        "src": "2270:18:16"
                                                    },
                                                    {
                                                        "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": 5893,
                                                                "name": "Identifier",
                                                                "src": "2289:3:16"
                                                            }
                                                        ],
                                                        "id": 5894,
                                                        "name": "MemberAccess",
                                                        "src": "2289:10:16"
                                                    }
                                                ],
                                                "id": 5895,
                                                "name": "FunctionCall",
                                                "src": "2270:30:16"
                                            }
                                        ],
                                        "id": 5896,
                                        "name": "ExpressionStatement",
                                        "src": "2270:30:16"
                                    }
                                ],
                                "id": 5897,
                                "name": "Block",
                                "src": "2259:49:16"
                            }
                        ],
                        "id": 5898,
                        "name": "FunctionDefinition",
                        "src": "2219:89:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getTokenCount",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8219,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5899,
                                "name": "ParameterList",
                                "src": "2338:2:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenCount",
                                            "scope": 5907,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 5900,
                                                "name": "ElementaryTypeName",
                                                "src": "2363:4:16"
                                            }
                                        ],
                                        "id": 5901,
                                        "name": "VariableDeclaration",
                                        "src": "2363:15:16"
                                    }
                                ],
                                "id": 5902,
                                "name": "ParameterList",
                                "src": "2362:17:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5902
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "length",
                                                    "referencedDeclaration": null,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5795,
                                                            "type": "address[] storage ref",
                                                            "value": "tokens"
                                                        },
                                                        "id": 5903,
                                                        "name": "Identifier",
                                                        "src": "2398:6:16"
                                                    }
                                                ],
                                                "id": 5904,
                                                "name": "MemberAccess",
                                                "src": "2398:13:16"
                                            }
                                        ],
                                        "id": 5905,
                                        "name": "Return",
                                        "src": "2391:20:16"
                                    }
                                ],
                                "id": 5906,
                                "name": "Block",
                                "src": "2380:39:16"
                            }
                        ],
                        "id": 5907,
                        "name": "FunctionDefinition",
                        "src": "2316:103:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getToken",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8226,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "n",
                                            "scope": 5919,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5908,
                                                "name": "ElementaryTypeName",
                                                "src": "2445:7:16"
                                            }
                                        ],
                                        "id": 5909,
                                        "name": "VariableDeclaration",
                                        "src": "2445:9:16"
                                    }
                                ],
                                "id": 5910,
                                "name": "ParameterList",
                                "src": "2444:11:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5919,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5911,
                                                "name": "ElementaryTypeName",
                                                "src": "2478:7:16"
                                            }
                                        ],
                                        "id": 5912,
                                        "name": "VariableDeclaration",
                                        "src": "2478:7:16"
                                    }
                                ],
                                "id": 5913,
                                "name": "ParameterList",
                                "src": "2477:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5913
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5795,
                                                            "type": "address[] storage ref",
                                                            "value": "tokens"
                                                        },
                                                        "id": 5914,
                                                        "name": "Identifier",
                                                        "src": "2504:6:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5909,
                                                            "type": "uint256",
                                                            "value": "n"
                                                        },
                                                        "id": 5915,
                                                        "name": "Identifier",
                                                        "src": "2511:1:16"
                                                    }
                                                ],
                                                "id": 5916,
                                                "name": "IndexAccess",
                                                "src": "2504:9:16"
                                            }
                                        ],
                                        "id": 5917,
                                        "name": "Return",
                                        "src": "2497:16:16"
                                    }
                                ],
                                "id": 5918,
                                "name": "Block",
                                "src": "2486:35:16"
                            }
                        ],
                        "id": 5919,
                        "name": "FunctionDefinition",
                        "src": "2427:94:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getName",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8233,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "viaAddress",
                                            "scope": 5932,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5920,
                                                "name": "ElementaryTypeName",
                                                "src": "2546:7:16"
                                            }
                                        ],
                                        "id": 5921,
                                        "name": "VariableDeclaration",
                                        "src": "2546:18:16"
                                    }
                                ],
                                "id": 5922,
                                "name": "ParameterList",
                                "src": "2545:20:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5932,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5923,
                                                "name": "ElementaryTypeName",
                                                "src": "2588:7:16"
                                            }
                                        ],
                                        "id": 5924,
                                        "name": "VariableDeclaration",
                                        "src": "2588:7:16"
                                    }
                                ],
                                "id": 5925,
                                "name": "ParameterList",
                                "src": "2587:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5925
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "name",
                                                    "referencedDeclaration": 5770,
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct Factory.via storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5775,
                                                                    "type": "mapping(address => struct Factory.via storage ref)",
                                                                    "value": "token"
                                                                },
                                                                "id": 5926,
                                                                "name": "Identifier",
                                                                "src": "2615:5:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5921,
                                                                    "type": "address",
                                                                    "value": "viaAddress"
                                                                },
                                                                "id": 5927,
                                                                "name": "Identifier",
                                                                "src": "2621:10:16"
                                                            }
                                                        ],
                                                        "id": 5928,
                                                        "name": "IndexAccess",
                                                        "src": "2615:17:16"
                                                    }
                                                ],
                                                "id": 5929,
                                                "name": "MemberAccess",
                                                "src": "2615:22:16"
                                            }
                                        ],
                                        "id": 5930,
                                        "name": "Return",
                                        "src": "2608:29:16"
                                    }
                                ],
                                "id": 5931,
                                "name": "Block",
                                "src": "2597:48:16"
                            }
                        ],
                        "id": 5932,
                        "name": "FunctionDefinition",
                        "src": "2529:116:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getType",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8240,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "viaAddress",
                                            "scope": 5945,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5933,
                                                "name": "ElementaryTypeName",
                                                "src": "2670:7:16"
                                            }
                                        ],
                                        "id": 5934,
                                        "name": "VariableDeclaration",
                                        "src": "2670:18:16"
                                    }
                                ],
                                "id": 5935,
                                "name": "ParameterList",
                                "src": "2669:20:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5945,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5936,
                                                "name": "ElementaryTypeName",
                                                "src": "2712:7:16"
                                            }
                                        ],
                                        "id": 5937,
                                        "name": "VariableDeclaration",
                                        "src": "2712:7:16"
                                    }
                                ],
                                "id": 5938,
                                "name": "ParameterList",
                                "src": "2711:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5938
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "tokenType",
                                                    "referencedDeclaration": 5768,
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct Factory.via storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5775,
                                                                    "type": "mapping(address => struct Factory.via storage ref)",
                                                                    "value": "token"
                                                                },
                                                                "id": 5939,
                                                                "name": "Identifier",
                                                                "src": "2739:5:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5934,
                                                                    "type": "address",
                                                                    "value": "viaAddress"
                                                                },
                                                                "id": 5940,
                                                                "name": "Identifier",
                                                                "src": "2745:10:16"
                                                            }
                                                        ],
                                                        "id": 5941,
                                                        "name": "IndexAccess",
                                                        "src": "2739:17:16"
                                                    }
                                                ],
                                                "id": 5942,
                                                "name": "MemberAccess",
                                                "src": "2739:27:16"
                                            }
                                        ],
                                        "id": 5943,
                                        "name": "Return",
                                        "src": "2732:34:16"
                                    }
                                ],
                                "id": 5944,
                                "name": "Block",
                                "src": "2721:53:16"
                            }
                        ],
                        "id": 5945,
                        "name": "FunctionDefinition",
                        "src": "2653:121:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getNameAndType",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8249,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "viaAddress",
                                            "scope": 5965,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5946,
                                                "name": "ElementaryTypeName",
                                                "src": "2806:7:16"
                                            }
                                        ],
                                        "id": 5947,
                                        "name": "VariableDeclaration",
                                        "src": "2806:18:16"
                                    }
                                ],
                                "id": 5948,
                                "name": "ParameterList",
                                "src": "2805:20:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5965,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5949,
                                                "name": "ElementaryTypeName",
                                                "src": "2848:7:16"
                                            }
                                        ],
                                        "id": 5950,
                                        "name": "VariableDeclaration",
                                        "src": "2848:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5965,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5951,
                                                "name": "ElementaryTypeName",
                                                "src": "2857:7:16"
                                            }
                                        ],
                                        "id": 5952,
                                        "name": "VariableDeclaration",
                                        "src": "2857:7:16"
                                    }
                                ],
                                "id": 5953,
                                "name": "ParameterList",
                                "src": "2847:18:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5953
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "tuple(bytes32,bytes32)"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "name",
                                                            "referencedDeclaration": 5770,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Factory.via storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5775,
                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                            "value": "token"
                                                                        },
                                                                        "id": 5954,
                                                                        "name": "Identifier",
                                                                        "src": "2884:5:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5947,
                                                                            "type": "address",
                                                                            "value": "viaAddress"
                                                                        },
                                                                        "id": 5955,
                                                                        "name": "Identifier",
                                                                        "src": "2890:10:16"
                                                                    }
                                                                ],
                                                                "id": 5956,
                                                                "name": "IndexAccess",
                                                                "src": "2884:17:16"
                                                            }
                                                        ],
                                                        "id": 5957,
                                                        "name": "MemberAccess",
                                                        "src": "2884:22:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "tokenType",
                                                            "referencedDeclaration": 5768,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Factory.via storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5775,
                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                            "value": "token"
                                                                        },
                                                                        "id": 5958,
                                                                        "name": "Identifier",
                                                                        "src": "2908:5:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5947,
                                                                            "type": "address",
                                                                            "value": "viaAddress"
                                                                        },
                                                                        "id": 5959,
                                                                        "name": "Identifier",
                                                                        "src": "2914:10:16"
                                                                    }
                                                                ],
                                                                "id": 5960,
                                                                "name": "IndexAccess",
                                                                "src": "2908:17:16"
                                                            }
                                                        ],
                                                        "id": 5961,
                                                        "name": "MemberAccess",
                                                        "src": "2908:27:16"
                                                    }
                                                ],
                                                "id": 5962,
                                                "name": "TupleExpression",
                                                "src": "2883:53:16"
                                            }
                                        ],
                                        "id": 5963,
                                        "name": "Return",
                                        "src": "2876:60:16"
                                    }
                                ],
                                "id": 5964,
                                "name": "Block",
                                "src": "2865:79:16"
                            }
                        ],
                        "id": 5965,
                        "name": "FunctionDefinition",
                        "src": "2782:162:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getTokenByNameType",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8276,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenName",
                                            "scope": 6003,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5966,
                                                "name": "ElementaryTypeName",
                                                "src": "2980:7:16"
                                            }
                                        ],
                                        "id": 5967,
                                        "name": "VariableDeclaration",
                                        "src": "2980:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenType",
                                            "scope": 6003,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 5968,
                                                "name": "ElementaryTypeName",
                                                "src": "2999:7:16"
                                            }
                                        ],
                                        "id": 5969,
                                        "name": "VariableDeclaration",
                                        "src": "2999:17:16"
                                    }
                                ],
                                "id": 5970,
                                "name": "ParameterList",
                                "src": "2979:38:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6003,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5971,
                                                "name": "ElementaryTypeName",
                                                "src": "3040:7:16"
                                            }
                                        ],
                                        "id": 5972,
                                        "name": "VariableDeclaration",
                                        "src": "3040:7:16"
                                    }
                                ],
                                "id": 5973,
                                "name": "ParameterList",
                                "src": "3039:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "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_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "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": "name",
                                                                    "referencedDeclaration": 5770,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Factory.via storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5775,
                                                                                    "type": "mapping(address => struct Factory.via storage ref)",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 5974,
                                                                                "name": "Identifier",
                                                                                "src": "3062:5:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5795,
                                                                                            "type": "address[] storage ref",
                                                                                            "value": "tokens"
                                                                                        },
                                                                                        "id": 5975,
                                                                                        "name": "Identifier",
                                                                                        "src": "3068:6:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5799,
                                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                                    "value": "tokenIndex"
                                                                                                },
                                                                                                "id": 5976,
                                                                                                "name": "Identifier",
                                                                                                "src": "3075:10:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5967,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenName"
                                                                                                },
                                                                                                "id": 5977,
                                                                                                "name": "Identifier",
                                                                                                "src": "3086:9:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5978,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3075:21:16"
                                                                                    }
                                                                                ],
                                                                                "id": 5979,
                                                                                "name": "IndexAccess",
                                                                                "src": "3068:29:16"
                                                                            }
                                                                        ],
                                                                        "id": 5980,
                                                                        "name": "IndexAccess",
                                                                        "src": "3062:36:16"
                                                                    }
                                                                ],
                                                                "id": 5981,
                                                                "name": "MemberAccess",
                                                                "src": "3062:41:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5967,
                                                                    "type": "bytes32",
                                                                    "value": "tokenName"
                                                                },
                                                                "id": 5982,
                                                                "name": "Identifier",
                                                                "src": "3107:9:16"
                                                            }
                                                        ],
                                                        "id": 5983,
                                                        "name": "BinaryOperation",
                                                        "src": "3062:54:16"
                                                    },
                                                    {
                                                        "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": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "tokenType",
                                                                    "referencedDeclaration": 5768,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Factory.via storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5775,
                                                                                    "type": "mapping(address => struct Factory.via storage ref)",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 5984,
                                                                                "name": "Identifier",
                                                                                "src": "3120:5:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5795,
                                                                                            "type": "address[] storage ref",
                                                                                            "value": "tokens"
                                                                                        },
                                                                                        "id": 5985,
                                                                                        "name": "Identifier",
                                                                                        "src": "3126:6:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5799,
                                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                                    "value": "tokenIndex"
                                                                                                },
                                                                                                "id": 5986,
                                                                                                "name": "Identifier",
                                                                                                "src": "3133:10:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5967,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenName"
                                                                                                },
                                                                                                "id": 5987,
                                                                                                "name": "Identifier",
                                                                                                "src": "3144:9:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5988,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3133:21:16"
                                                                                    }
                                                                                ],
                                                                                "id": 5989,
                                                                                "name": "IndexAccess",
                                                                                "src": "3126:29:16"
                                                                            }
                                                                        ],
                                                                        "id": 5990,
                                                                        "name": "IndexAccess",
                                                                        "src": "3120:36:16"
                                                                    }
                                                                ],
                                                                "id": 5991,
                                                                "name": "MemberAccess",
                                                                "src": "3120:46:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5969,
                                                                    "type": "bytes32",
                                                                    "value": "tokenType"
                                                                },
                                                                "id": 5992,
                                                                "name": "Identifier",
                                                                "src": "3170:9:16"
                                                            }
                                                        ],
                                                        "id": 5993,
                                                        "name": "BinaryOperation",
                                                        "src": "3120:59:16"
                                                    }
                                                ],
                                                "id": 5994,
                                                "name": "BinaryOperation",
                                                "src": "3062:117:16"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 5973
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5795,
                                                                    "type": "address[] storage ref",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 5995,
                                                                "name": "Identifier",
                                                                "src": "3205:6:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5799,
                                                                            "type": "mapping(bytes32 => uint256)",
                                                                            "value": "tokenIndex"
                                                                        },
                                                                        "id": 5996,
                                                                        "name": "Identifier",
                                                                        "src": "3212:10:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5967,
                                                                            "type": "bytes32",
                                                                            "value": "tokenName"
                                                                        },
                                                                        "id": 5997,
                                                                        "name": "Identifier",
                                                                        "src": "3223:9:16"
                                                                    }
                                                                ],
                                                                "id": 5998,
                                                                "name": "IndexAccess",
                                                                "src": "3212:21:16"
                                                            }
                                                        ],
                                                        "id": 5999,
                                                        "name": "IndexAccess",
                                                        "src": "3205:29:16"
                                                    }
                                                ],
                                                "id": 6000,
                                                "name": "Return",
                                                "src": "3198:36:16"
                                            }
                                        ],
                                        "id": 6001,
                                        "name": "IfStatement",
                                        "src": "3059:175:16"
                                    }
                                ],
                                "id": 6002,
                                "name": "Block",
                                "src": "3048:194:16"
                            }
                        ],
                        "id": 6003,
                        "name": "FunctionDefinition",
                        "src": "2952:290:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getIssuer",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8258,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenType",
                                            "scope": 6019,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6004,
                                                "name": "ElementaryTypeName",
                                                "src": "3344:7:16"
                                            }
                                        ],
                                        "id": 6005,
                                        "name": "VariableDeclaration",
                                        "src": "3344:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenName",
                                            "scope": 6019,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6006,
                                                "name": "ElementaryTypeName",
                                                "src": "3363:7:16"
                                            }
                                        ],
                                        "id": 6007,
                                        "name": "VariableDeclaration",
                                        "src": "3363:17:16"
                                    }
                                ],
                                "id": 6008,
                                "name": "ParameterList",
                                "src": "3343:38:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6019,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6009,
                                                "name": "ElementaryTypeName",
                                                "src": "3404:7:16"
                                            }
                                        ],
                                        "id": 6010,
                                        "name": "VariableDeclaration",
                                        "src": "3404:7:16"
                                    }
                                ],
                                "id": 6011,
                                "name": "ParameterList",
                                "src": "3403:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6011
                                        },
                                        "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,
                                                            "type": "mapping(bytes32 => address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5805,
                                                                    "type": "mapping(bytes32 => mapping(bytes32 => address))",
                                                                    "value": "issuers"
                                                                },
                                                                "id": 6012,
                                                                "name": "Identifier",
                                                                "src": "3430:7:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6005,
                                                                    "type": "bytes32",
                                                                    "value": "tokenType"
                                                                },
                                                                "id": 6013,
                                                                "name": "Identifier",
                                                                "src": "3438:9:16"
                                                            }
                                                        ],
                                                        "id": 6014,
                                                        "name": "IndexAccess",
                                                        "src": "3430:18:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6007,
                                                            "type": "bytes32",
                                                            "value": "tokenName"
                                                        },
                                                        "id": 6015,
                                                        "name": "Identifier",
                                                        "src": "3449:9:16"
                                                    }
                                                ],
                                                "id": 6016,
                                                "name": "IndexAccess",
                                                "src": "3430:29:16"
                                            }
                                        ],
                                        "id": 6017,
                                        "name": "Return",
                                        "src": "3423:36:16"
                                    }
                                ],
                                "id": 6018,
                                "name": "Block",
                                "src": "3412:55:16"
                            }
                        ],
                        "id": 6019,
                        "name": "FunctionDefinition",
                        "src": "3325:142:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getAddressAndType",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8267,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenName",
                                            "scope": 6071,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6020,
                                                "name": "ElementaryTypeName",
                                                "src": "3564:7:16"
                                            }
                                        ],
                                        "id": 6021,
                                        "name": "VariableDeclaration",
                                        "src": "3564:17:16"
                                    }
                                ],
                                "id": 6022,
                                "name": "ParameterList",
                                "src": "3563:19:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6071,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6023,
                                                "name": "ElementaryTypeName",
                                                "src": "3606:7:16"
                                            }
                                        ],
                                        "id": 6024,
                                        "name": "VariableDeclaration",
                                        "src": "3606:7:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6071,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6025,
                                                "name": "ElementaryTypeName",
                                                "src": "3615:7:16"
                                            }
                                        ],
                                        "id": 6026,
                                        "name": "VariableDeclaration",
                                        "src": "3615:7:16"
                                    }
                                ],
                                "id": 6027,
                                "name": "ParameterList",
                                "src": "3605:18:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6029
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "found",
                                                    "scope": 6070,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bool",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bool",
                                                            "type": "bool"
                                                        },
                                                        "id": 6028,
                                                        "name": "ElementaryTypeName",
                                                        "src": "3634:4:16"
                                                    }
                                                ],
                                                "id": 6029,
                                                "name": "VariableDeclaration",
                                                "src": "3634:10:16"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "66616c7365",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "false"
                                                },
                                                "id": 6030,
                                                "name": "Literal",
                                                "src": "3647:5:16"
                                            }
                                        ],
                                        "id": 6031,
                                        "name": "VariableDeclarationStatement",
                                        "src": "3634:18:16"
                                    },
                                    {
                                        "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,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "name",
                                                            "referencedDeclaration": 5770,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct Factory.via storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5775,
                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                            "value": "token"
                                                                        },
                                                                        "id": 6032,
                                                                        "name": "Identifier",
                                                                        "src": "3666:5:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5795,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "tokens"
                                                                                },
                                                                                "id": 6033,
                                                                                "name": "Identifier",
                                                                                "src": "3672:6:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5799,
                                                                                            "type": "mapping(bytes32 => uint256)",
                                                                                            "value": "tokenIndex"
                                                                                        },
                                                                                        "id": 6034,
                                                                                        "name": "Identifier",
                                                                                        "src": "3679:10:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6021,
                                                                                            "type": "bytes32",
                                                                                            "value": "tokenName"
                                                                                        },
                                                                                        "id": 6035,
                                                                                        "name": "Identifier",
                                                                                        "src": "3690:9:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6036,
                                                                                "name": "IndexAccess",
                                                                                "src": "3679:21:16"
                                                                            }
                                                                        ],
                                                                        "id": 6037,
                                                                        "name": "IndexAccess",
                                                                        "src": "3672:29:16"
                                                                    }
                                                                ],
                                                                "id": 6038,
                                                                "name": "IndexAccess",
                                                                "src": "3666:36:16"
                                                            }
                                                        ],
                                                        "id": 6039,
                                                        "name": "MemberAccess",
                                                        "src": "3666:41:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6021,
                                                            "type": "bytes32",
                                                            "value": "tokenName"
                                                        },
                                                        "id": 6040,
                                                        "name": "Identifier",
                                                        "src": "3709:9:16"
                                                    }
                                                ],
                                                "id": 6041,
                                                "name": "BinaryOperation",
                                                "src": "3666:52:16"
                                            },
                                            {
                                                "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": 6029,
                                                                    "type": "bool",
                                                                    "value": "found"
                                                                },
                                                                "id": 6042,
                                                                "name": "Identifier",
                                                                "src": "3733:5:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "74727565",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "true"
                                                                },
                                                                "id": 6043,
                                                                "name": "Literal",
                                                                "src": "3742:4:16"
                                                            }
                                                        ],
                                                        "id": 6044,
                                                        "name": "BinaryOperation",
                                                        "src": "3733:13:16"
                                                    }
                                                ],
                                                "id": 6045,
                                                "name": "ExpressionStatement",
                                                "src": "3733:13:16"
                                            }
                                        ],
                                        "id": 6046,
                                        "name": "IfStatement",
                                        "src": "3663:83:16"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 6029,
                                                    "type": "bool",
                                                    "value": "found"
                                                },
                                                "id": 6047,
                                                "name": "Identifier",
                                                "src": "3760:5:16"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 6027
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isInlineArray": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "tuple(address,bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5795,
                                                                            "type": "address[] storage ref",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 6048,
                                                                        "name": "Identifier",
                                                                        "src": "3788:6:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5799,
                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                    "value": "tokenIndex"
                                                                                },
                                                                                "id": 6049,
                                                                                "name": "Identifier",
                                                                                "src": "3795:10:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6021,
                                                                                    "type": "bytes32",
                                                                                    "value": "tokenName"
                                                                                },
                                                                                "id": 6050,
                                                                                "name": "Identifier",
                                                                                "src": "3806:9:16"
                                                                            }
                                                                        ],
                                                                        "id": 6051,
                                                                        "name": "IndexAccess",
                                                                        "src": "3795:21:16"
                                                                    }
                                                                ],
                                                                "id": 6052,
                                                                "name": "IndexAccess",
                                                                "src": "3788:29:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "tokenType",
                                                                    "referencedDeclaration": 5768,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct Factory.via storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5775,
                                                                                    "type": "mapping(address => struct Factory.via storage ref)",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 6053,
                                                                                "name": "Identifier",
                                                                                "src": "3819:5:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5795,
                                                                                            "type": "address[] storage ref",
                                                                                            "value": "tokens"
                                                                                        },
                                                                                        "id": 6054,
                                                                                        "name": "Identifier",
                                                                                        "src": "3825:6:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5799,
                                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                                    "value": "tokenIndex"
                                                                                                },
                                                                                                "id": 6055,
                                                                                                "name": "Identifier",
                                                                                                "src": "3832:10:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6021,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenName"
                                                                                                },
                                                                                                "id": 6056,
                                                                                                "name": "Identifier",
                                                                                                "src": "3843:9:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6057,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "3832:21:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6058,
                                                                                "name": "IndexAccess",
                                                                                "src": "3825:29:16"
                                                                            }
                                                                        ],
                                                                        "id": 6059,
                                                                        "name": "IndexAccess",
                                                                        "src": "3819:36:16"
                                                                    }
                                                                ],
                                                                "id": 6060,
                                                                "name": "MemberAccess",
                                                                "src": "3819:46:16"
                                                            }
                                                        ],
                                                        "id": 6061,
                                                        "name": "TupleExpression",
                                                        "src": "3787:79:16"
                                                    }
                                                ],
                                                "id": 6062,
                                                "name": "Return",
                                                "src": "3780:86:16"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 6027
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isInlineArray": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "type": "tuple(address payable,literal_string \"\")"
                                                        },
                                                        "children": [
                                                            {
                                                                "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": 6063,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "3903:7:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "307830",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0x0"
                                                                        },
                                                                        "id": 6064,
                                                                        "name": "Literal",
                                                                        "src": "3911:3:16"
                                                                    }
                                                                ],
                                                                "id": 6065,
                                                                "name": "FunctionCall",
                                                                "src": "3903:12:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"\"",
                                                                    "value": ""
                                                                },
                                                                "id": 6066,
                                                                "name": "Literal",
                                                                "src": "3917:2:16"
                                                            }
                                                        ],
                                                        "id": 6067,
                                                        "name": "TupleExpression",
                                                        "src": "3902:18:16"
                                                    }
                                                ],
                                                "id": 6068,
                                                "name": "Return",
                                                "src": "3895:25:16"
                                            }
                                        ],
                                        "id": 6069,
                                        "name": "IfStatement",
                                        "src": "3757:163:16"
                                    }
                                ],
                                "id": 6070,
                                "name": "Block",
                                "src": "3623:305:16"
                            }
                        ],
                        "id": 6071,
                        "name": "FunctionDefinition",
                        "src": "3537:391:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getViaOracleUrl",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8281,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6072,
                                "name": "ParameterList",
                                "src": "3960:2:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6086,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6073,
                                                "name": "ElementaryTypeName",
                                                "src": "3985:6:16"
                                            }
                                        ],
                                        "id": 6074,
                                        "name": "VariableDeclaration",
                                        "src": "3985:13:16"
                                    }
                                ],
                                "id": 6075,
                                "name": "ParameterList",
                                "src": "3984:15:16"
                            },
                            {
                                "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": 6076,
                                                        "name": "Identifier",
                                                        "src": "4010:7:16"
                                                    },
                                                    {
                                                        "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,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 6077,
                                                                        "name": "Identifier",
                                                                        "src": "4018:3:16"
                                                                    }
                                                                ],
                                                                "id": 6078,
                                                                "name": "MemberAccess",
                                                                "src": "4018:10:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5777,
                                                                    "type": "address",
                                                                    "value": "ViaOracle"
                                                                },
                                                                "id": 6079,
                                                                "name": "Identifier",
                                                                "src": "4032:9:16"
                                                            }
                                                        ],
                                                        "id": 6080,
                                                        "name": "BinaryOperation",
                                                        "src": "4018:23:16"
                                                    }
                                                ],
                                                "id": 6081,
                                                "name": "FunctionCall",
                                                "src": "4010:32:16"
                                            }
                                        ],
                                        "id": 6082,
                                        "name": "ExpressionStatement",
                                        "src": "4010:32:16"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6075
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 5779,
                                                    "type": "string storage ref",
                                                    "value": "ViaOracleUrl"
                                                },
                                                "id": 6083,
                                                "name": "Identifier",
                                                "src": "4060:12:16"
                                            }
                                        ],
                                        "id": 6084,
                                        "name": "Return",
                                        "src": "4053:19:16"
                                    }
                                ],
                                "id": 6085,
                                "name": "Block",
                                "src": "3999:81:16"
                            }
                        ],
                        "id": 6086,
                        "name": "FunctionDefinition",
                        "src": "3936:144:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getFiatPayoutUrl",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8337,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6087,
                                "name": "ParameterList",
                                "src": "4113:2:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6101,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6088,
                                                "name": "ElementaryTypeName",
                                                "src": "4138:6:16"
                                            }
                                        ],
                                        "id": 6089,
                                        "name": "VariableDeclaration",
                                        "src": "4138:13:16"
                                    }
                                ],
                                "id": 6090,
                                "name": "ParameterList",
                                "src": "4137:15:16"
                            },
                            {
                                "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": 6091,
                                                        "name": "Identifier",
                                                        "src": "4163:7:16"
                                                    },
                                                    {
                                                        "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,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 6092,
                                                                        "name": "Identifier",
                                                                        "src": "4171:3:16"
                                                                    }
                                                                ],
                                                                "id": 6093,
                                                                "name": "MemberAccess",
                                                                "src": "4171:10:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5777,
                                                                    "type": "address",
                                                                    "value": "ViaOracle"
                                                                },
                                                                "id": 6094,
                                                                "name": "Identifier",
                                                                "src": "4185:9:16"
                                                            }
                                                        ],
                                                        "id": 6095,
                                                        "name": "BinaryOperation",
                                                        "src": "4171:23:16"
                                                    }
                                                ],
                                                "id": 6096,
                                                "name": "FunctionCall",
                                                "src": "4163:32:16"
                                            }
                                        ],
                                        "id": 6097,
                                        "name": "ExpressionStatement",
                                        "src": "4163:32:16"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6090
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 5781,
                                                    "type": "string storage ref",
                                                    "value": "FiatPayoutUrl"
                                                },
                                                "id": 6098,
                                                "name": "Identifier",
                                                "src": "4213:13:16"
                                            }
                                        ],
                                        "id": 6099,
                                        "name": "Return",
                                        "src": "4206:20:16"
                                    }
                                ],
                                "id": 6100,
                                "name": "Block",
                                "src": "4152:82:16"
                            }
                        ],
                        "id": 6101,
                        "name": "FunctionDefinition",
                        "src": "4088:146:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getCryptoDataUrl",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8290,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "fromCurrency",
                                            "scope": 6124,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6102,
                                                "name": "ElementaryTypeName",
                                                "src": "4268:7:16"
                                            }
                                        ],
                                        "id": 6103,
                                        "name": "VariableDeclaration",
                                        "src": "4268:20:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "toCurrency",
                                            "scope": 6124,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6104,
                                                "name": "ElementaryTypeName",
                                                "src": "4290:7:16"
                                            }
                                        ],
                                        "id": 6105,
                                        "name": "VariableDeclaration",
                                        "src": "4290:18:16"
                                    }
                                ],
                                "id": 6106,
                                "name": "ParameterList",
                                "src": "4267:42:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6124,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6107,
                                                "name": "ElementaryTypeName",
                                                "src": "4332:6:16"
                                            }
                                        ],
                                        "id": 6108,
                                        "name": "VariableDeclaration",
                                        "src": "4332:13:16"
                                    }
                                ],
                                "id": 6109,
                                "name": "ParameterList",
                                "src": "4331:15:16"
                            },
                            {
                                "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": 6110,
                                                        "name": "Identifier",
                                                        "src": "4357:7:16"
                                                    },
                                                    {
                                                        "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,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 6111,
                                                                        "name": "Identifier",
                                                                        "src": "4365:3:16"
                                                                    }
                                                                ],
                                                                "id": 6112,
                                                                "name": "MemberAccess",
                                                                "src": "4365:10:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5777,
                                                                    "type": "address",
                                                                    "value": "ViaOracle"
                                                                },
                                                                "id": 6113,
                                                                "name": "Identifier",
                                                                "src": "4379:9:16"
                                                            }
                                                        ],
                                                        "id": 6114,
                                                        "name": "BinaryOperation",
                                                        "src": "4365:23:16"
                                                    }
                                                ],
                                                "id": 6115,
                                                "name": "FunctionCall",
                                                "src": "4357:32:16"
                                            }
                                        ],
                                        "id": 6116,
                                        "name": "ExpressionStatement",
                                        "src": "4357:32:16"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6109
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "string storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(bytes32 => string storage ref)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5787,
                                                                    "type": "mapping(bytes32 => mapping(bytes32 => string storage ref))",
                                                                    "value": "CryptoDataUrl"
                                                                },
                                                                "id": 6117,
                                                                "name": "Identifier",
                                                                "src": "4407:13:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6103,
                                                                    "type": "bytes32",
                                                                    "value": "fromCurrency"
                                                                },
                                                                "id": 6118,
                                                                "name": "Identifier",
                                                                "src": "4421:12:16"
                                                            }
                                                        ],
                                                        "id": 6119,
                                                        "name": "IndexAccess",
                                                        "src": "4407:27:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6105,
                                                            "type": "bytes32",
                                                            "value": "toCurrency"
                                                        },
                                                        "id": 6120,
                                                        "name": "Identifier",
                                                        "src": "4435:10:16"
                                                    }
                                                ],
                                                "id": 6121,
                                                "name": "IndexAccess",
                                                "src": "4407:39:16"
                                            }
                                        ],
                                        "id": 6122,
                                        "name": "Return",
                                        "src": "4400:46:16"
                                    }
                                ],
                                "id": 6123,
                                "name": "Block",
                                "src": "4346:108:16"
                            }
                        ],
                        "id": 6124,
                        "name": "FunctionDefinition",
                        "src": "4242:212:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getClient",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8361,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6125,
                                "name": "ParameterList",
                                "src": "4529:2:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6151,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6126,
                                                "name": "ElementaryTypeName",
                                                "src": "4554:7:16"
                                            }
                                        ],
                                        "id": 6127,
                                        "name": "VariableDeclaration",
                                        "src": "4554:7:16"
                                    }
                                ],
                                "id": 6128,
                                "name": "ParameterList",
                                "src": "4553:9:16"
                            },
                            {
                                "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"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_dea9422c714183435541e373f04983eb3b27b5d05cff61138974b29a6780bbc1",
                                                                    "typeString": "literal_string \"Get client : FORBIDDEN\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6129,
                                                        "name": "Identifier",
                                                        "src": "4573:7:16"
                                                    },
                                                    {
                                                        "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": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "tokenType",
                                                                            "referencedDeclaration": 5768,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct Factory.via storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5775,
                                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                                            "value": "token"
                                                                                        },
                                                                                        "id": 6130,
                                                                                        "name": "Identifier",
                                                                                        "src": "4581:5:16"
                                                                                    },
                                                                                    {
                                                                                        "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": 6131,
                                                                                                "name": "Identifier",
                                                                                                "src": "4587:3:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6132,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4587:10:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6133,
                                                                                "name": "IndexAccess",
                                                                                "src": "4581:17:16"
                                                                            }
                                                                        ],
                                                                        "id": 6134,
                                                                        "name": "MemberAccess",
                                                                        "src": "4581:27:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "56696143617368",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaCash\"",
                                                                            "value": "ViaCash"
                                                                        },
                                                                        "id": 6135,
                                                                        "name": "Literal",
                                                                        "src": "4612:9:16"
                                                                    }
                                                                ],
                                                                "id": 6136,
                                                                "name": "BinaryOperation",
                                                                "src": "4581:40:16"
                                                            },
                                                            {
                                                                "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": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "tokenType",
                                                                            "referencedDeclaration": 5768,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct Factory.via storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5775,
                                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                                            "value": "token"
                                                                                        },
                                                                                        "id": 6137,
                                                                                        "name": "Identifier",
                                                                                        "src": "4625:5:16"
                                                                                    },
                                                                                    {
                                                                                        "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": 6138,
                                                                                                "name": "Identifier",
                                                                                                "src": "4631:3:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6139,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4631:10:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6140,
                                                                                "name": "IndexAccess",
                                                                                "src": "4625:17:16"
                                                                            }
                                                                        ],
                                                                        "id": 6141,
                                                                        "name": "MemberAccess",
                                                                        "src": "4625:27:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "566961426f6e64",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaBond\"",
                                                                            "value": "ViaBond"
                                                                        },
                                                                        "id": 6142,
                                                                        "name": "Literal",
                                                                        "src": "4656:9:16"
                                                                    }
                                                                ],
                                                                "id": 6143,
                                                                "name": "BinaryOperation",
                                                                "src": "4625:40:16"
                                                            }
                                                        ],
                                                        "id": 6144,
                                                        "name": "BinaryOperation",
                                                        "src": "4581:84:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "47657420636c69656e74203a20464f5242494444454e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Get client : FORBIDDEN\"",
                                                            "value": "Get client : FORBIDDEN"
                                                        },
                                                        "id": 6145,
                                                        "name": "Literal",
                                                        "src": "4667:24:16"
                                                    }
                                                ],
                                                "id": 6146,
                                                "name": "FunctionCall",
                                                "src": "4573:119:16"
                                            }
                                        ],
                                        "id": 6147,
                                        "name": "ExpressionStatement",
                                        "src": "4573:119:16"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6128
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 5792,
                                                    "type": "address",
                                                    "value": "client"
                                                },
                                                "id": 6148,
                                                "name": "Identifier",
                                                "src": "4710:6:16"
                                            }
                                        ],
                                        "id": 6149,
                                        "name": "Return",
                                        "src": "4703:13:16"
                                    }
                                ],
                                "id": 6150,
                                "name": "Block",
                                "src": "4562:162:16"
                            }
                        ],
                        "id": 6151,
                        "name": "FunctionDefinition",
                        "src": "4511:213:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getOracles",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8367,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6152,
                                "name": "ParameterList",
                                "src": "4751:2:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6167,
                                            "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": 6153,
                                                        "name": "ElementaryTypeName",
                                                        "src": "4776:7:16"
                                                    }
                                                ],
                                                "id": 6154,
                                                "name": "ArrayTypeName",
                                                "src": "4776:9:16"
                                            }
                                        ],
                                        "id": 6155,
                                        "name": "VariableDeclaration",
                                        "src": "4776:16:16"
                                    }
                                ],
                                "id": 6156,
                                "name": "ParameterList",
                                "src": "4775:18:16"
                            },
                            {
                                "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": 6157,
                                                        "name": "Identifier",
                                                        "src": "4804:7:16"
                                                    },
                                                    {
                                                        "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,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 13007,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 6158,
                                                                        "name": "Identifier",
                                                                        "src": "4812:3:16"
                                                                    }
                                                                ],
                                                                "id": 6159,
                                                                "name": "MemberAccess",
                                                                "src": "4812:10:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5777,
                                                                    "type": "address",
                                                                    "value": "ViaOracle"
                                                                },
                                                                "id": 6160,
                                                                "name": "Identifier",
                                                                "src": "4826:9:16"
                                                            }
                                                        ],
                                                        "id": 6161,
                                                        "name": "BinaryOperation",
                                                        "src": "4812:23:16"
                                                    }
                                                ],
                                                "id": 6162,
                                                "name": "FunctionCall",
                                                "src": "4804:32:16"
                                            }
                                        ],
                                        "id": 6163,
                                        "name": "ExpressionStatement",
                                        "src": "4804:32:16"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6156
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 5790,
                                                    "type": "address[] storage ref",
                                                    "value": "oracles"
                                                },
                                                "id": 6164,
                                                "name": "Identifier",
                                                "src": "4854:7:16"
                                            }
                                        ],
                                        "id": 6165,
                                        "name": "Return",
                                        "src": "4847:14:16"
                                    }
                                ],
                                "id": 6166,
                                "name": "Block",
                                "src": "4793:76:16"
                            }
                        ],
                        "id": 6167,
                        "name": "FunctionDefinition",
                        "src": "4732:137:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getBondTerm",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8297,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_bondToken",
                                            "scope": 6179,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6168,
                                                "name": "ElementaryTypeName",
                                                "src": "4898:7:16"
                                            }
                                        ],
                                        "id": 6169,
                                        "name": "VariableDeclaration",
                                        "src": "4898:18:16"
                                    }
                                ],
                                "id": 6170,
                                "name": "ParameterList",
                                "src": "4897:20:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6179,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6171,
                                                "name": "ElementaryTypeName",
                                                "src": "4940:7:16"
                                            }
                                        ],
                                        "id": 6172,
                                        "name": "VariableDeclaration",
                                        "src": "4940:7:16"
                                    }
                                ],
                                "id": 6173,
                                "name": "ParameterList",
                                "src": "4939:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6173
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5809,
                                                            "type": "mapping(address => uint256)",
                                                            "value": "term"
                                                        },
                                                        "id": 6174,
                                                        "name": "Identifier",
                                                        "src": "4966:4:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6169,
                                                            "type": "address",
                                                            "value": "_bondToken"
                                                        },
                                                        "id": 6175,
                                                        "name": "Identifier",
                                                        "src": "4971:10:16"
                                                    }
                                                ],
                                                "id": 6176,
                                                "name": "IndexAccess",
                                                "src": "4966:16:16"
                                            }
                                        ],
                                        "id": 6177,
                                        "name": "Return",
                                        "src": "4959:23:16"
                                    }
                                ],
                                "id": 6178,
                                "name": "Block",
                                "src": "4948:42:16"
                            }
                        ],
                        "id": 6179,
                        "name": "FunctionDefinition",
                        "src": "4877:113:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "createIssuer",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8314,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_target",
                                            "scope": 6388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6180,
                                                "name": "ElementaryTypeName",
                                                "src": "5049:7:16"
                                            }
                                        ],
                                        "id": 6181,
                                        "name": "VariableDeclaration",
                                        "src": "5049:15:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenName",
                                            "scope": 6388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6182,
                                                "name": "ElementaryTypeName",
                                                "src": "5066:7:16"
                                            }
                                        ],
                                        "id": 6183,
                                        "name": "VariableDeclaration",
                                        "src": "5066:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenType",
                                            "scope": 6388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6184,
                                                "name": "ElementaryTypeName",
                                                "src": "5085:7:16"
                                            }
                                        ],
                                        "id": 6185,
                                        "name": "VariableDeclaration",
                                        "src": "5085:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenCurrency",
                                            "scope": 6388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6186,
                                                "name": "ElementaryTypeName",
                                                "src": "5104:7:16"
                                            }
                                        ],
                                        "id": 6187,
                                        "name": "VariableDeclaration",
                                        "src": "5104:21:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_oracle",
                                            "scope": 6388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6188,
                                                "name": "ElementaryTypeName",
                                                "src": "5127:7:16"
                                            }
                                        ],
                                        "id": 6189,
                                        "name": "VariableDeclaration",
                                        "src": "5127:15:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_token",
                                            "scope": 6388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6190,
                                                "name": "ElementaryTypeName",
                                                "src": "5144:7:16"
                                            }
                                        ],
                                        "id": 6191,
                                        "name": "VariableDeclaration",
                                        "src": "5144:14:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_fee",
                                            "scope": 6388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6192,
                                                "name": "ElementaryTypeName",
                                                "src": "5160:7:16"
                                            }
                                        ],
                                        "id": 6193,
                                        "name": "VariableDeclaration",
                                        "src": "5160:12:16"
                                    }
                                ],
                                "id": 6194,
                                "name": "ParameterList",
                                "src": "5048:125:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6197,
                                "name": "ParameterList",
                                "src": "5192:0:16"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 269,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 6195,
                                        "name": "Identifier",
                                        "src": "5174:9:16"
                                    }
                                ],
                                "id": 6196,
                                "name": "ModifierInvocation",
                                "src": "5174:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5777,
                                                            "type": "address",
                                                            "value": "ViaOracle"
                                                        },
                                                        "id": 6198,
                                                        "name": "Identifier",
                                                        "src": "5203:9:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6189,
                                                            "type": "address",
                                                            "value": "_oracle"
                                                        },
                                                        "id": 6199,
                                                        "name": "Identifier",
                                                        "src": "5215:7:16"
                                                    }
                                                ],
                                                "id": 6200,
                                                "name": "Assignment",
                                                "src": "5203:19:16"
                                            }
                                        ],
                                        "id": 6201,
                                        "name": "ExpressionStatement",
                                        "src": "5203:19:16"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6203
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "_payload",
                                                    "scope": 6387,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "bytes",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes",
                                                            "type": "bytes"
                                                        },
                                                        "id": 6202,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5233:5:16"
                                                    }
                                                ],
                                                "id": 6203,
                                                "name": "VariableDeclaration",
                                                "src": "5233:21:16"
                                            },
                                            {
                                                "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_stringliteral_89d29c4c62aed23557cdd6503067fff926c36e4130ad6bce6fa6ed9d62392f96",
                                                                    "typeString": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\""
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "member_name": "encodeWithSignature",
                                                            "referencedDeclaration": null,
                                                            "type": "function (string memory) pure returns (bytes memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12994,
                                                                    "type": "abi",
                                                                    "value": "abi"
                                                                },
                                                                "id": 6204,
                                                                "name": "Identifier",
                                                                "src": "5257:3:16"
                                                            }
                                                        ],
                                                        "id": 6205,
                                                        "name": "MemberAccess",
                                                        "src": "5257:23:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "696e697469616c697a6528627974657333322c627974657333322c616464726573732c616464726573732c616464726573732c6164647265737329",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"initialize(bytes32,bytes32,address,address,address,address)\"",
                                                            "value": "initialize(bytes32,bytes32,address,address,address,address)"
                                                        },
                                                        "id": 6206,
                                                        "name": "Literal",
                                                        "src": "5281:61:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6183,
                                                            "type": "bytes32",
                                                            "value": "tokenName"
                                                        },
                                                        "id": 6207,
                                                        "name": "Identifier",
                                                        "src": "5343:9:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6187,
                                                            "type": "bytes32",
                                                            "value": "tokenCurrency"
                                                        },
                                                        "id": 6208,
                                                        "name": "Identifier",
                                                        "src": "5353:13:16"
                                                    },
                                                    {
                                                        "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": 6209,
                                                                "name": "Identifier",
                                                                "src": "5367:5:16"
                                                            }
                                                        ],
                                                        "id": 6210,
                                                        "name": "FunctionCall",
                                                        "src": "5367:7:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6189,
                                                            "type": "address",
                                                            "value": "_oracle"
                                                        },
                                                        "id": 6211,
                                                        "name": "Identifier",
                                                        "src": "5375:7:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6191,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 6212,
                                                        "name": "Identifier",
                                                        "src": "5383:6:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6193,
                                                            "type": "address",
                                                            "value": "_fee"
                                                        },
                                                        "id": 6213,
                                                        "name": "Identifier",
                                                        "src": "5390:4:16"
                                                    }
                                                ],
                                                "id": 6214,
                                                "name": "FunctionCall",
                                                "src": "5257:138:16"
                                            }
                                        ],
                                        "id": 6215,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5233:162:16"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6217
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "_issuer",
                                                    "scope": 6387,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 6216,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5433:7:16"
                                                    }
                                                ],
                                                "id": 6217,
                                                "name": "VariableDeclaration",
                                                "src": "5433:15:16"
                                            },
                                            {
                                                "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_bytes_memory_ptr",
                                                                    "typeString": "bytes memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 985,
                                                            "type": "function (address,bytes memory) returns (address)",
                                                            "value": "deployMinimal"
                                                        },
                                                        "id": 6218,
                                                        "name": "Identifier",
                                                        "src": "5451:13:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6181,
                                                            "type": "address",
                                                            "value": "_target"
                                                        },
                                                        "id": 6219,
                                                        "name": "Identifier",
                                                        "src": "5465:7:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6203,
                                                            "type": "bytes memory",
                                                            "value": "_payload"
                                                        },
                                                        "id": 6220,
                                                        "name": "Identifier",
                                                        "src": "5474:8:16"
                                                    }
                                                ],
                                                "id": 6221,
                                                "name": "FunctionCall",
                                                "src": "5451:32:16"
                                            }
                                        ],
                                        "id": 6222,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5433:50:16"
                                    },
                                    {
                                        "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": 6185,
                                                            "type": "bytes32",
                                                            "value": "tokenType"
                                                        },
                                                        "id": 6223,
                                                        "name": "Identifier",
                                                        "src": "5497:9:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "43617368",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Cash\"",
                                                            "value": "Cash"
                                                        },
                                                        "id": 6224,
                                                        "name": "Literal",
                                                        "src": "5508:6:16"
                                                    }
                                                ],
                                                "id": 6225,
                                                "name": "BinaryOperation",
                                                "src": "5497:17:16"
                                            },
                                            {
                                                "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_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5828,
                                                                    "type": "function (address,bytes32,bytes32)",
                                                                    "value": "CashIssuerCreated"
                                                                },
                                                                "id": 6226,
                                                                "name": "Identifier",
                                                                "src": "5534:17:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6217,
                                                                    "type": "address",
                                                                    "value": "_issuer"
                                                                },
                                                                "id": 6227,
                                                                "name": "Identifier",
                                                                "src": "5552:7:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6183,
                                                                    "type": "bytes32",
                                                                    "value": "tokenName"
                                                                },
                                                                "id": 6228,
                                                                "name": "Identifier",
                                                                "src": "5561:9:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6185,
                                                                    "type": "bytes32",
                                                                    "value": "tokenType"
                                                                },
                                                                "id": 6229,
                                                                "name": "Identifier",
                                                                "src": "5572:9:16"
                                                            }
                                                        ],
                                                        "id": 6230,
                                                        "name": "FunctionCall",
                                                        "src": "5534:48:16"
                                                    }
                                                ],
                                                "id": 6231,
                                                "name": "EmitStatement",
                                                "src": "5529:53:16"
                                            },
                                            {
                                                "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": 6185,
                                                                    "type": "bytes32",
                                                                    "value": "tokenType"
                                                                },
                                                                "id": 6232,
                                                                "name": "Identifier",
                                                                "src": "5601:9:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "426f6e64",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"Bond\"",
                                                                    "value": "Bond"
                                                                },
                                                                "id": 6233,
                                                                "name": "Literal",
                                                                "src": "5614:6:16"
                                                            }
                                                        ],
                                                        "id": 6234,
                                                        "name": "BinaryOperation",
                                                        "src": "5601:19:16"
                                                    },
                                                    {
                                                        "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_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5836,
                                                                            "type": "function (address,bytes32,bytes32)",
                                                                            "value": "BondIssuerCreated"
                                                                        },
                                                                        "id": 6235,
                                                                        "name": "Identifier",
                                                                        "src": "5640:17:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6217,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 6236,
                                                                        "name": "Identifier",
                                                                        "src": "5658:7:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6183,
                                                                            "type": "bytes32",
                                                                            "value": "tokenName"
                                                                        },
                                                                        "id": 6237,
                                                                        "name": "Identifier",
                                                                        "src": "5667:9:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6185,
                                                                            "type": "bytes32",
                                                                            "value": "tokenType"
                                                                        },
                                                                        "id": 6238,
                                                                        "name": "Identifier",
                                                                        "src": "5678:9:16"
                                                                    }
                                                                ],
                                                                "id": 6239,
                                                                "name": "FunctionCall",
                                                                "src": "5640:48:16"
                                                            }
                                                        ],
                                                        "id": 6240,
                                                        "name": "EmitStatement",
                                                        "src": "5635:53:16"
                                                    }
                                                ],
                                                "id": 6241,
                                                "name": "IfStatement",
                                                "src": "5598:90:16"
                                            }
                                        ],
                                        "id": 6242,
                                        "name": "IfStatement",
                                        "src": "5494:194:16"
                                    },
                                    {
                                        "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": 6185,
                                                            "type": "bytes32",
                                                            "value": "tokenType"
                                                        },
                                                        "id": 6243,
                                                        "name": "Identifier",
                                                        "src": "5704:9:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "43617368",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Cash\"",
                                                            "value": "Cash"
                                                        },
                                                        "id": 6244,
                                                        "name": "Literal",
                                                        "src": "5717:6:16"
                                                    }
                                                ],
                                                "id": 6245,
                                                "name": "BinaryOperation",
                                                "src": "5704:19:16"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "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,
                                                                                    "type": "mapping(bytes32 => address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5805,
                                                                                            "type": "mapping(bytes32 => mapping(bytes32 => address))",
                                                                                            "value": "issuers"
                                                                                        },
                                                                                        "id": 6246,
                                                                                        "name": "Identifier",
                                                                                        "src": "5742:7:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "56696143617368",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "string",
                                                                                            "type": "literal_string \"ViaCash\"",
                                                                                            "value": "ViaCash"
                                                                                        },
                                                                                        "id": 6247,
                                                                                        "name": "Literal",
                                                                                        "src": "5750:9:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6248,
                                                                                "name": "IndexAccess",
                                                                                "src": "5742:18:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6187,
                                                                                    "type": "bytes32",
                                                                                    "value": "tokenCurrency"
                                                                                },
                                                                                "id": 6249,
                                                                                "name": "Identifier",
                                                                                "src": "5761:13:16"
                                                                            }
                                                                        ],
                                                                        "id": 6250,
                                                                        "name": "IndexAccess",
                                                                        "src": "5742:33:16"
                                                                    },
                                                                    {
                                                                        "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": 6251,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "5777:7:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "307830",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 0",
                                                                                    "value": "0x0"
                                                                                },
                                                                                "id": 6252,
                                                                                "name": "Literal",
                                                                                "src": "5785:3:16"
                                                                            }
                                                                        ],
                                                                        "id": 6253,
                                                                        "name": "FunctionCall",
                                                                        "src": "5777:12:16"
                                                                    }
                                                                ],
                                                                "id": 6254,
                                                                "name": "BinaryOperation",
                                                                "src": "5742:47:16"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "struct Factory.via storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "struct Factory.via storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5775,
                                                                                                    "type": "mapping(address => struct Factory.via storage ref)",
                                                                                                    "value": "token"
                                                                                                },
                                                                                                "id": 6255,
                                                                                                "name": "Identifier",
                                                                                                "src": "5809:5:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6217,
                                                                                                    "type": "address",
                                                                                                    "value": "_issuer"
                                                                                                },
                                                                                                "id": 6256,
                                                                                                "name": "Identifier",
                                                                                                "src": "5815:7:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6257,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5809:14:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": true,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "struct Factory.via memory",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5771,
                                                                                                    "type": "type(struct Factory.via storage pointer)",
                                                                                                    "value": "via"
                                                                                                },
                                                                                                "id": 6258,
                                                                                                "name": "Identifier",
                                                                                                "src": "5826:3:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "56696143617368",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "string",
                                                                                                    "type": "literal_string \"ViaCash\"",
                                                                                                    "value": "ViaCash"
                                                                                                },
                                                                                                "id": 6259,
                                                                                                "name": "Literal",
                                                                                                "src": "5830:9:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6183,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenName"
                                                                                                },
                                                                                                "id": 6260,
                                                                                                "name": "Identifier",
                                                                                                "src": "5841:9:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6261,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "5826:25:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6262,
                                                                                "name": "Assignment",
                                                                                "src": "5809:42:16"
                                                                            }
                                                                        ],
                                                                        "id": 6263,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "5809:42:16"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5795,
                                                                                                    "type": "address[] storage ref",
                                                                                                    "value": "tokens"
                                                                                                },
                                                                                                "id": 6264,
                                                                                                "name": "Identifier",
                                                                                                "src": "5870:6:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5799,
                                                                                                            "type": "mapping(bytes32 => uint256)",
                                                                                                            "value": "tokenIndex"
                                                                                                        },
                                                                                                        "id": 6265,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5877:10:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6183,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "tokenName"
                                                                                                        },
                                                                                                        "id": 6266,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5888:9:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6267,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "5877:21:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6268,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5870:29:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6217,
                                                                                            "type": "address",
                                                                                            "value": "_issuer"
                                                                                        },
                                                                                        "id": 6269,
                                                                                        "name": "Identifier",
                                                                                        "src": "5902:7:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6270,
                                                                                "name": "Assignment",
                                                                                "src": "5870:39:16"
                                                                            }
                                                                        ],
                                                                        "id": 6271,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "5870:39:16"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "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,
                                                                                                    "type": "mapping(bytes32 => address)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5805,
                                                                                                            "type": "mapping(bytes32 => mapping(bytes32 => address))",
                                                                                                            "value": "issuers"
                                                                                                        },
                                                                                                        "id": 6272,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5928:7:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "56696143617368",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"ViaCash\"",
                                                                                                            "value": "ViaCash"
                                                                                                        },
                                                                                                        "id": 6273,
                                                                                                        "name": "Literal",
                                                                                                        "src": "5936:9:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6275,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "5928:18:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6187,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenCurrency"
                                                                                                },
                                                                                                "id": 6274,
                                                                                                "name": "Identifier",
                                                                                                "src": "5947:13:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6276,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "5928:33:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6217,
                                                                                            "type": "address",
                                                                                            "value": "_issuer"
                                                                                        },
                                                                                        "id": 6277,
                                                                                        "name": "Identifier",
                                                                                        "src": "5964:7:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6278,
                                                                                "name": "Assignment",
                                                                                "src": "5928:43:16"
                                                                            }
                                                                        ],
                                                                        "id": 6279,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "5928:43:16"
                                                                    }
                                                                ],
                                                                "id": 6280,
                                                                "name": "Block",
                                                                "src": "5790:197:16"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "struct Factory.via storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "struct Factory.via storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5775,
                                                                                                    "type": "mapping(address => struct Factory.via storage ref)",
                                                                                                    "value": "token"
                                                                                                },
                                                                                                "id": 6281,
                                                                                                "name": "Identifier",
                                                                                                "src": "6024:5:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6217,
                                                                                                    "type": "address",
                                                                                                    "value": "_issuer"
                                                                                                },
                                                                                                "id": 6282,
                                                                                                "name": "Identifier",
                                                                                                "src": "6030:7:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6283,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "6024:14:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": true,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "struct Factory.via memory",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_stringliteral_3c30a0e8e1c782e31ccb8fae07c6066a8040aa799f508e8cb657fa62c08db465",
                                                                                                            "typeString": "literal_string \"ViaCash\""
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5771,
                                                                                                    "type": "type(struct Factory.via storage pointer)",
                                                                                                    "value": "via"
                                                                                                },
                                                                                                "id": 6284,
                                                                                                "name": "Identifier",
                                                                                                "src": "6041:3:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "56696143617368",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "string",
                                                                                                    "type": "literal_string \"ViaCash\"",
                                                                                                    "value": "ViaCash"
                                                                                                },
                                                                                                "id": 6285,
                                                                                                "name": "Literal",
                                                                                                "src": "6045:9:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6183,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenName"
                                                                                                },
                                                                                                "id": 6286,
                                                                                                "name": "Identifier",
                                                                                                "src": "6056:9:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6287,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "6041:25:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6288,
                                                                                "name": "Assignment",
                                                                                "src": "6024:42:16"
                                                                            }
                                                                        ],
                                                                        "id": 6289,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "6024:42:16"
                                                                    },
                                                                    {
                                                                        "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,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5799,
                                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                                    "value": "tokenIndex"
                                                                                                },
                                                                                                "id": 6290,
                                                                                                "name": "Identifier",
                                                                                                "src": "6085:10:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6183,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenName"
                                                                                                },
                                                                                                "id": 6291,
                                                                                                "name": "Identifier",
                                                                                                "src": "6096:9:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6292,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "6085:21:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "length",
                                                                                            "referencedDeclaration": null,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5795,
                                                                                                    "type": "address[] storage ref",
                                                                                                    "value": "tokens"
                                                                                                },
                                                                                                "id": 6293,
                                                                                                "name": "Identifier",
                                                                                                "src": "6107:6:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6294,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "6107:13:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6295,
                                                                                "name": "Assignment",
                                                                                "src": "6085:35:16"
                                                                            }
                                                                        ],
                                                                        "id": 6296,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "6085:35:16"
                                                                    },
                                                                    {
                                                                        "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": 5795,
                                                                                                    "type": "address[] storage ref",
                                                                                                    "value": "tokens"
                                                                                                },
                                                                                                "id": 6297,
                                                                                                "name": "Identifier",
                                                                                                "src": "6139:6:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6299,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "6139:11:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6217,
                                                                                            "type": "address",
                                                                                            "value": "_issuer"
                                                                                        },
                                                                                        "id": 6300,
                                                                                        "name": "Identifier",
                                                                                        "src": "6151:7:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6301,
                                                                                "name": "FunctionCall",
                                                                                "src": "6139:20:16"
                                                                            }
                                                                        ],
                                                                        "id": 6302,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "6139:20:16"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "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,
                                                                                                    "type": "mapping(bytes32 => address)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5805,
                                                                                                            "type": "mapping(bytes32 => mapping(bytes32 => address))",
                                                                                                            "value": "issuers"
                                                                                                        },
                                                                                                        "id": 6303,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6194:7:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "56696143617368",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"ViaCash\"",
                                                                                                            "value": "ViaCash"
                                                                                                        },
                                                                                                        "id": 6304,
                                                                                                        "name": "Literal",
                                                                                                        "src": "6202:9:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6306,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "6194:18:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6187,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "tokenCurrency"
                                                                                                },
                                                                                                "id": 6305,
                                                                                                "name": "Identifier",
                                                                                                "src": "6213:13:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6307,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "6194:33:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6217,
                                                                                            "type": "address",
                                                                                            "value": "_issuer"
                                                                                        },
                                                                                        "id": 6308,
                                                                                        "name": "Identifier",
                                                                                        "src": "6230:7:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6309,
                                                                                "name": "Assignment",
                                                                                "src": "6194:43:16"
                                                                            }
                                                                        ],
                                                                        "id": 6310,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "6194:43:16"
                                                                    }
                                                                ],
                                                                "id": 6311,
                                                                "name": "Block",
                                                                "src": "6005:248:16"
                                                            }
                                                        ],
                                                        "id": 6312,
                                                        "name": "IfStatement",
                                                        "src": "5739:514:16"
                                                    }
                                                ],
                                                "id": 6313,
                                                "name": "Block",
                                                "src": "5724:540:16"
                                            },
                                            {
                                                "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": 6185,
                                                                    "type": "bytes32",
                                                                    "value": "tokenType"
                                                                },
                                                                "id": 6314,
                                                                "name": "Identifier",
                                                                "src": "6282:9:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "426f6e64",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"Bond\"",
                                                                    "value": "Bond"
                                                                },
                                                                "id": 6315,
                                                                "name": "Literal",
                                                                "src": "6295:6:16"
                                                            }
                                                        ],
                                                        "id": 6316,
                                                        "name": "BinaryOperation",
                                                        "src": "6282:19:16"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "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,
                                                                                            "type": "mapping(bytes32 => address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5805,
                                                                                                    "type": "mapping(bytes32 => mapping(bytes32 => address))",
                                                                                                    "value": "issuers"
                                                                                                },
                                                                                                "id": 6317,
                                                                                                "name": "Identifier",
                                                                                                "src": "6320:7:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "566961426f6e64",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "string",
                                                                                                    "type": "literal_string \"ViaBond\"",
                                                                                                    "value": "ViaBond"
                                                                                                },
                                                                                                "id": 6318,
                                                                                                "name": "Literal",
                                                                                                "src": "6328:9:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6319,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "6320:18:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6187,
                                                                                            "type": "bytes32",
                                                                                            "value": "tokenCurrency"
                                                                                        },
                                                                                        "id": 6320,
                                                                                        "name": "Identifier",
                                                                                        "src": "6339:13:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6321,
                                                                                "name": "IndexAccess",
                                                                                "src": "6320:33:16"
                                                                            },
                                                                            {
                                                                                "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": 6322,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "6355:7:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "307830",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0x0"
                                                                                        },
                                                                                        "id": 6323,
                                                                                        "name": "Literal",
                                                                                        "src": "6363:3:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6324,
                                                                                "name": "FunctionCall",
                                                                                "src": "6355:12:16"
                                                                            }
                                                                        ],
                                                                        "id": 6325,
                                                                        "name": "BinaryOperation",
                                                                        "src": "6320:47:16"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "struct Factory.via storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "struct Factory.via storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5775,
                                                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                                                            "value": "token"
                                                                                                        },
                                                                                                        "id": 6326,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6387:5:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6217,
                                                                                                            "type": "address",
                                                                                                            "value": "_issuer"
                                                                                                        },
                                                                                                        "id": 6327,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6393:7:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6328,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "6387:14:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "struct Factory.via memory",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5771,
                                                                                                            "type": "type(struct Factory.via storage pointer)",
                                                                                                            "value": "via"
                                                                                                        },
                                                                                                        "id": 6329,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6404:3:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "566961426f6e64",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"ViaBond\"",
                                                                                                            "value": "ViaBond"
                                                                                                        },
                                                                                                        "id": 6330,
                                                                                                        "name": "Literal",
                                                                                                        "src": "6408:9:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6183,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "tokenName"
                                                                                                        },
                                                                                                        "id": 6331,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6419:9:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6332,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "6404:25:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6333,
                                                                                        "name": "Assignment",
                                                                                        "src": "6387:42:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6334,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "6387:42:16"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5795,
                                                                                                            "type": "address[] storage ref",
                                                                                                            "value": "tokens"
                                                                                                        },
                                                                                                        "id": 6335,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6448:6:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5799,
                                                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                                                    "value": "tokenIndex"
                                                                                                                },
                                                                                                                "id": 6336,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "6455:10:16"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6183,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "tokenName"
                                                                                                                },
                                                                                                                "id": 6337,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "6466:9:16"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 6338,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "6455:21:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6339,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "6448:29:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6217,
                                                                                                    "type": "address",
                                                                                                    "value": "_issuer"
                                                                                                },
                                                                                                "id": 6340,
                                                                                                "name": "Identifier",
                                                                                                "src": "6480:7:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6341,
                                                                                        "name": "Assignment",
                                                                                        "src": "6448:39:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6342,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "6448:39:16"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "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,
                                                                                                            "type": "mapping(bytes32 => address)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5805,
                                                                                                                    "type": "mapping(bytes32 => mapping(bytes32 => address))",
                                                                                                                    "value": "issuers"
                                                                                                                },
                                                                                                                "id": 6343,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "6506:7:16"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "566961426f6e64",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"ViaBond\"",
                                                                                                                    "value": "ViaBond"
                                                                                                                },
                                                                                                                "id": 6344,
                                                                                                                "name": "Literal",
                                                                                                                "src": "6514:9:16"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 6346,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "6506:18:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6187,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "tokenCurrency"
                                                                                                        },
                                                                                                        "id": 6345,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6525:13:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6347,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "6506:33:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6217,
                                                                                                    "type": "address",
                                                                                                    "value": "_issuer"
                                                                                                },
                                                                                                "id": 6348,
                                                                                                "name": "Identifier",
                                                                                                "src": "6542:7:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6349,
                                                                                        "name": "Assignment",
                                                                                        "src": "6506:43:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6350,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "6506:43:16"
                                                                            }
                                                                        ],
                                                                        "id": 6351,
                                                                        "name": "Block",
                                                                        "src": "6368:197:16"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "struct Factory.via storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "struct Factory.via storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5775,
                                                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                                                            "value": "token"
                                                                                                        },
                                                                                                        "id": 6352,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6602:5:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6217,
                                                                                                            "type": "address",
                                                                                                            "value": "_issuer"
                                                                                                        },
                                                                                                        "id": 6353,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6608:7:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6354,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "6602:14:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "struct Factory.via memory",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                                                                    "typeString": "literal_string \"ViaBond\""
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                                    "typeString": "bytes32"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5771,
                                                                                                            "type": "type(struct Factory.via storage pointer)",
                                                                                                            "value": "via"
                                                                                                        },
                                                                                                        "id": 6355,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6619:3:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "566961426f6e64",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "string",
                                                                                                            "type": "literal_string \"ViaBond\"",
                                                                                                            "value": "ViaBond"
                                                                                                        },
                                                                                                        "id": 6356,
                                                                                                        "name": "Literal",
                                                                                                        "src": "6623:9:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6183,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "tokenName"
                                                                                                        },
                                                                                                        "id": 6357,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6634:9:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6358,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "6619:25:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6359,
                                                                                        "name": "Assignment",
                                                                                        "src": "6602:42:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6360,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "6602:42:16"
                                                                            },
                                                                            {
                                                                                "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,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5799,
                                                                                                            "type": "mapping(bytes32 => uint256)",
                                                                                                            "value": "tokenIndex"
                                                                                                        },
                                                                                                        "id": 6361,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6663:10:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6183,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "tokenName"
                                                                                                        },
                                                                                                        "id": 6362,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6674:9:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6363,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "6663:21:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "length",
                                                                                                    "referencedDeclaration": null,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5795,
                                                                                                            "type": "address[] storage ref",
                                                                                                            "value": "tokens"
                                                                                                        },
                                                                                                        "id": 6364,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6685:6:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6365,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "6685:13:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6366,
                                                                                        "name": "Assignment",
                                                                                        "src": "6663:35:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6367,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "6663:35:16"
                                                                            },
                                                                            {
                                                                                "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": 5795,
                                                                                                            "type": "address[] storage ref",
                                                                                                            "value": "tokens"
                                                                                                        },
                                                                                                        "id": 6368,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6717:6:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6370,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "6717:11:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6217,
                                                                                                    "type": "address",
                                                                                                    "value": "_issuer"
                                                                                                },
                                                                                                "id": 6371,
                                                                                                "name": "Identifier",
                                                                                                "src": "6729:7:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6372,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "6717:20:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6373,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "6717:20:16"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "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,
                                                                                                            "type": "mapping(bytes32 => address)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5805,
                                                                                                                    "type": "mapping(bytes32 => mapping(bytes32 => address))",
                                                                                                                    "value": "issuers"
                                                                                                                },
                                                                                                                "id": 6374,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "6772:7:16"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "hexvalue": "566961426f6e64",
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "subdenomination": null,
                                                                                                                    "token": "string",
                                                                                                                    "type": "literal_string \"ViaBond\"",
                                                                                                                    "value": "ViaBond"
                                                                                                                },
                                                                                                                "id": 6375,
                                                                                                                "name": "Literal",
                                                                                                                "src": "6780:9:16"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 6377,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "6772:18:16"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6187,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "tokenCurrency"
                                                                                                        },
                                                                                                        "id": 6376,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6791:13:16"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6378,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "6772:33:16"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6217,
                                                                                                    "type": "address",
                                                                                                    "value": "_issuer"
                                                                                                },
                                                                                                "id": 6379,
                                                                                                "name": "Identifier",
                                                                                                "src": "6808:7:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6380,
                                                                                        "name": "Assignment",
                                                                                        "src": "6772:43:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6381,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "6772:43:16"
                                                                            }
                                                                        ],
                                                                        "id": 6382,
                                                                        "name": "Block",
                                                                        "src": "6583:248:16"
                                                                    }
                                                                ],
                                                                "id": 6383,
                                                                "name": "IfStatement",
                                                                "src": "6317:514:16"
                                                            }
                                                        ],
                                                        "id": 6384,
                                                        "name": "Block",
                                                        "src": "6302:540:16"
                                                    }
                                                ],
                                                "id": 6385,
                                                "name": "IfStatement",
                                                "src": "6279:563:16"
                                            }
                                        ],
                                        "id": 6386,
                                        "name": "IfStatement",
                                        "src": "5701:1141:16"
                                    }
                                ],
                                "id": 6387,
                                "name": "Block",
                                "src": "5192:1657:16"
                            }
                        ],
                        "id": 6388,
                        "name": "FunctionDefinition",
                        "src": "5027:1822:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "createToken",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8327,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_target",
                                            "scope": 6463,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6389,
                                                "name": "ElementaryTypeName",
                                                "src": "6903:7:16"
                                            }
                                        ],
                                        "id": 6390,
                                        "name": "VariableDeclaration",
                                        "src": "6903:15:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issuer",
                                            "scope": 6463,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6391,
                                                "name": "ElementaryTypeName",
                                                "src": "6920:7:16"
                                            }
                                        ],
                                        "id": 6392,
                                        "name": "VariableDeclaration",
                                        "src": "6920:14:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenName",
                                            "scope": 6463,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6393,
                                                "name": "ElementaryTypeName",
                                                "src": "6936:7:16"
                                            }
                                        ],
                                        "id": 6394,
                                        "name": "VariableDeclaration",
                                        "src": "6936:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "tokenSymbol",
                                            "scope": 6463,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6395,
                                                "name": "ElementaryTypeName",
                                                "src": "6955:7:16"
                                            }
                                        ],
                                        "id": 6396,
                                        "name": "VariableDeclaration",
                                        "src": "6955:19:16"
                                    }
                                ],
                                "id": 6397,
                                "name": "ParameterList",
                                "src": "6902:73:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6463,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6398,
                                                "name": "ElementaryTypeName",
                                                "src": "6993:7:16"
                                            }
                                        ],
                                        "id": 6399,
                                        "name": "VariableDeclaration",
                                        "src": "6993:7:16"
                                    }
                                ],
                                "id": 6400,
                                "name": "ParameterList",
                                "src": "6992:9:16"
                            },
                            {
                                "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": 6401,
                                                        "name": "Identifier",
                                                        "src": "7012:7:16"
                                                    },
                                                    {
                                                        "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": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "tokenType",
                                                                            "referencedDeclaration": 5768,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct Factory.via storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5775,
                                                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                                                            "value": "token"
                                                                                        },
                                                                                        "id": 6402,
                                                                                        "name": "Identifier",
                                                                                        "src": "7020:5:16"
                                                                                    },
                                                                                    {
                                                                                        "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": 6403,
                                                                                                "name": "Identifier",
                                                                                                "src": "7026:3:16"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6404,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "7026:10:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6405,
                                                                                "name": "IndexAccess",
                                                                                "src": "7020:17:16"
                                                                            }
                                                                        ],
                                                                        "id": 6406,
                                                                        "name": "MemberAccess",
                                                                        "src": "7020:27:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "566961426f6e64",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ViaBond\"",
                                                                            "value": "ViaBond"
                                                                        },
                                                                        "id": 6407,
                                                                        "name": "Literal",
                                                                        "src": "7051:9:16"
                                                                    }
                                                                ],
                                                                "id": 6408,
                                                                "name": "BinaryOperation",
                                                                "src": "7020:40:16"
                                                            },
                                                            {
                                                                "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,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sender",
                                                                            "referencedDeclaration": null,
                                                                            "type": "address payable"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 13007,
                                                                                    "type": "msg",
                                                                                    "value": "msg"
                                                                                },
                                                                                "id": 6409,
                                                                                "name": "Identifier",
                                                                                "src": "7064:3:16"
                                                                            }
                                                                        ],
                                                                        "id": 6410,
                                                                        "name": "MemberAccess",
                                                                        "src": "7064:10:16"
                                                                    },
                                                                    {
                                                                        "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": 6411,
                                                                                "name": "Identifier",
                                                                                "src": "7076:5:16"
                                                                            }
                                                                        ],
                                                                        "id": 6412,
                                                                        "name": "FunctionCall",
                                                                        "src": "7076:7:16"
                                                                    }
                                                                ],
                                                                "id": 6413,
                                                                "name": "BinaryOperation",
                                                                "src": "7064:19:16"
                                                            }
                                                        ],
                                                        "id": 6414,
                                                        "name": "BinaryOperation",
                                                        "src": "7020:63:16"
                                                    }
                                                ],
                                                "id": 6415,
                                                "name": "FunctionCall",
                                                "src": "7012:72:16"
                                            }
                                        ],
                                        "id": 6416,
                                        "name": "ExpressionStatement",
                                        "src": "7012:72:16"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6418
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "_payload",
                                                    "scope": 6462,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "bytes",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes",
                                                            "type": "bytes"
                                                        },
                                                        "id": 6417,
                                                        "name": "ElementaryTypeName",
                                                        "src": "7097:5:16"
                                                    }
                                                ],
                                                "id": 6418,
                                                "name": "VariableDeclaration",
                                                "src": "7097:21:16"
                                            },
                                            {
                                                "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_stringliteral_ef239721e1794ea7af4b3d9ed1df305dc3fd3f4b47790a21aae7f8e36470a328",
                                                                    "typeString": "literal_string \"initialize(bytes32,address,address,bytes32)\""
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "member_name": "encodeWithSignature",
                                                            "referencedDeclaration": null,
                                                            "type": "function (string memory) pure returns (bytes memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12994,
                                                                    "type": "abi",
                                                                    "value": "abi"
                                                                },
                                                                "id": 6419,
                                                                "name": "Identifier",
                                                                "src": "7121:3:16"
                                                            }
                                                        ],
                                                        "id": 6420,
                                                        "name": "MemberAccess",
                                                        "src": "7121:23:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "696e697469616c697a6528627974657333322c616464726573732c616464726573732c6279746573333229",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"initialize(bytes32,address,address,bytes32)\"",
                                                            "value": "initialize(bytes32,address,address,bytes32)"
                                                        },
                                                        "id": 6421,
                                                        "name": "Literal",
                                                        "src": "7145:45:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6394,
                                                            "type": "bytes32",
                                                            "value": "tokenName"
                                                        },
                                                        "id": 6422,
                                                        "name": "Identifier",
                                                        "src": "7192:9:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6392,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 6423,
                                                        "name": "Identifier",
                                                        "src": "7203:6:16"
                                                    },
                                                    {
                                                        "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": 6424,
                                                                "name": "Identifier",
                                                                "src": "7211:3:16"
                                                            }
                                                        ],
                                                        "id": 6425,
                                                        "name": "MemberAccess",
                                                        "src": "7211:10:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6396,
                                                            "type": "bytes32",
                                                            "value": "tokenSymbol"
                                                        },
                                                        "id": 6426,
                                                        "name": "Identifier",
                                                        "src": "7223:11:16"
                                                    }
                                                ],
                                                "id": 6427,
                                                "name": "FunctionCall",
                                                "src": "7121:114:16"
                                            }
                                        ],
                                        "id": 6428,
                                        "name": "VariableDeclarationStatement",
                                        "src": "7097:138:16"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6430
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "_token",
                                                    "scope": 6462,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 6429,
                                                        "name": "ElementaryTypeName",
                                                        "src": "7273:7:16"
                                                    }
                                                ],
                                                "id": 6430,
                                                "name": "VariableDeclaration",
                                                "src": "7273:14:16"
                                            },
                                            {
                                                "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_bytes_memory_ptr",
                                                                    "typeString": "bytes memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 985,
                                                            "type": "function (address,bytes memory) returns (address)",
                                                            "value": "deployMinimal"
                                                        },
                                                        "id": 6431,
                                                        "name": "Identifier",
                                                        "src": "7290:13:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6390,
                                                            "type": "address",
                                                            "value": "_target"
                                                        },
                                                        "id": 6432,
                                                        "name": "Identifier",
                                                        "src": "7304:7:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6418,
                                                            "type": "bytes memory",
                                                            "value": "_payload"
                                                        },
                                                        "id": 6433,
                                                        "name": "Identifier",
                                                        "src": "7313:8:16"
                                                    }
                                                ],
                                                "id": 6434,
                                                "name": "FunctionCall",
                                                "src": "7290:32:16"
                                            }
                                        ],
                                        "id": 6435,
                                        "name": "VariableDeclarationStatement",
                                        "src": "7273:49:16"
                                    },
                                    {
                                        "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_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_52973aa3d1d0b9b2038bddf6fa0399136f1ab1c5f89b7edd623ff24875d0ed1f",
                                                                    "typeString": "literal_string \"ViaBond\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5844,
                                                            "type": "function (address,bytes32,bytes32)",
                                                            "value": "TokenCreated"
                                                        },
                                                        "id": 6436,
                                                        "name": "Identifier",
                                                        "src": "7338:12:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6430,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 6437,
                                                        "name": "Identifier",
                                                        "src": "7351:6:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6396,
                                                            "type": "bytes32",
                                                            "value": "tokenSymbol"
                                                        },
                                                        "id": 6438,
                                                        "name": "Identifier",
                                                        "src": "7359:11:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "566961426f6e64",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"ViaBond\"",
                                                            "value": "ViaBond"
                                                        },
                                                        "id": 6439,
                                                        "name": "Literal",
                                                        "src": "7372:9:16"
                                                    }
                                                ],
                                                "id": 6440,
                                                "name": "FunctionCall",
                                                "src": "7338:44:16"
                                            }
                                        ],
                                        "id": 6441,
                                        "name": "EmitStatement",
                                        "src": "7333:49:16"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6443
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "t",
                                                    "scope": 6462,
                                                    "stateVariable": false,
                                                    "storageLocation": "storage",
                                                    "type": "struct Factory.via",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "contractScope": null,
                                                            "name": "via",
                                                            "referencedDeclaration": 5771,
                                                            "type": "struct Factory.via"
                                                        },
                                                        "id": 6442,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "7403:3:16"
                                                    }
                                                ],
                                                "id": 6443,
                                                "name": "VariableDeclaration",
                                                "src": "7403:13:16"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct Factory.via storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5775,
                                                            "type": "mapping(address => struct Factory.via storage ref)",
                                                            "value": "token"
                                                        },
                                                        "id": 6444,
                                                        "name": "Identifier",
                                                        "src": "7419:5:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6430,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 6445,
                                                        "name": "Identifier",
                                                        "src": "7425:6:16"
                                                    }
                                                ],
                                                "id": 6446,
                                                "name": "IndexAccess",
                                                "src": "7419:13:16"
                                            }
                                        ],
                                        "id": 6447,
                                        "name": "VariableDeclarationStatement",
                                        "src": "7403:29:16"
                                    },
                                    {
                                        "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": "tokenType",
                                                            "referencedDeclaration": 5768,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6443,
                                                                    "type": "struct Factory.via storage pointer",
                                                                    "value": "t"
                                                                },
                                                                "id": 6448,
                                                                "name": "Identifier",
                                                                "src": "7443:1:16"
                                                            }
                                                        ],
                                                        "id": 6450,
                                                        "name": "MemberAccess",
                                                        "src": "7443:11:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "566961426f6e64546f6b656e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"ViaBondToken\"",
                                                            "value": "ViaBondToken"
                                                        },
                                                        "id": 6451,
                                                        "name": "Literal",
                                                        "src": "7457:14:16"
                                                    }
                                                ],
                                                "id": 6452,
                                                "name": "Assignment",
                                                "src": "7443:28:16"
                                            }
                                        ],
                                        "id": 6453,
                                        "name": "ExpressionStatement",
                                        "src": "7443:28:16"
                                    },
                                    {
                                        "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": 5795,
                                                                    "type": "address[] storage ref",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 6454,
                                                                "name": "Identifier",
                                                                "src": "7482:6:16"
                                                            }
                                                        ],
                                                        "id": 6456,
                                                        "name": "MemberAccess",
                                                        "src": "7482:11:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6430,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 6457,
                                                        "name": "Identifier",
                                                        "src": "7494:6:16"
                                                    }
                                                ],
                                                "id": 6458,
                                                "name": "FunctionCall",
                                                "src": "7482:19:16"
                                            }
                                        ],
                                        "id": 6459,
                                        "name": "ExpressionStatement",
                                        "src": "7482:19:16"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6400
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 6430,
                                                    "type": "address",
                                                    "value": "_token"
                                                },
                                                "id": 6460,
                                                "name": "Identifier",
                                                "src": "7529:6:16"
                                            }
                                        ],
                                        "id": 6461,
                                        "name": "Return",
                                        "src": "7522:13:16"
                                    }
                                ],
                                "id": 6462,
                                "name": "Block",
                                "src": "7001:542:16"
                            }
                        ],
                        "id": 6463,
                        "name": "FunctionDefinition",
                        "src": "6882:661:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setViaOracleUrl",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8332,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_url",
                                            "scope": 6475,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6464,
                                                "name": "ElementaryTypeName",
                                                "src": "7576:6:16"
                                            }
                                        ],
                                        "id": 6465,
                                        "name": "VariableDeclaration",
                                        "src": "7576:20:16"
                                    }
                                ],
                                "id": 6466,
                                "name": "ParameterList",
                                "src": "7575:22:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6469,
                                "name": "ParameterList",
                                "src": "7617:0:16"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 269,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 6467,
                                        "name": "Identifier",
                                        "src": "7598:9:16"
                                    }
                                ],
                                "id": 6468,
                                "name": "ModifierInvocation",
                                "src": "7598:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "string storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5779,
                                                            "type": "string storage ref",
                                                            "value": "ViaOracleUrl"
                                                        },
                                                        "id": 6470,
                                                        "name": "Identifier",
                                                        "src": "7628:12:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6465,
                                                            "type": "string calldata",
                                                            "value": "_url"
                                                        },
                                                        "id": 6471,
                                                        "name": "Identifier",
                                                        "src": "7643:4:16"
                                                    }
                                                ],
                                                "id": 6472,
                                                "name": "Assignment",
                                                "src": "7628:19:16"
                                            }
                                        ],
                                        "id": 6473,
                                        "name": "ExpressionStatement",
                                        "src": "7628:19:16"
                                    }
                                ],
                                "id": 6474,
                                "name": "Block",
                                "src": "7617:38:16"
                            }
                        ],
                        "id": 6475,
                        "name": "FunctionDefinition",
                        "src": "7551:104:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setFiatPayoutUrl",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8342,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_url",
                                            "scope": 6487,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6476,
                                                "name": "ElementaryTypeName",
                                                "src": "7692:6:16"
                                            }
                                        ],
                                        "id": 6477,
                                        "name": "VariableDeclaration",
                                        "src": "7692:20:16"
                                    }
                                ],
                                "id": 6478,
                                "name": "ParameterList",
                                "src": "7691:22:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6481,
                                "name": "ParameterList",
                                "src": "7733:0:16"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 269,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 6479,
                                        "name": "Identifier",
                                        "src": "7714:9:16"
                                    }
                                ],
                                "id": 6480,
                                "name": "ModifierInvocation",
                                "src": "7714:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "string storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5781,
                                                            "type": "string storage ref",
                                                            "value": "FiatPayoutUrl"
                                                        },
                                                        "id": 6482,
                                                        "name": "Identifier",
                                                        "src": "7744:13:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6477,
                                                            "type": "string calldata",
                                                            "value": "_url"
                                                        },
                                                        "id": 6483,
                                                        "name": "Identifier",
                                                        "src": "7760:4:16"
                                                    }
                                                ],
                                                "id": 6484,
                                                "name": "Assignment",
                                                "src": "7744:20:16"
                                            }
                                        ],
                                        "id": 6485,
                                        "name": "ExpressionStatement",
                                        "src": "7744:20:16"
                                    }
                                ],
                                "id": 6486,
                                "name": "Block",
                                "src": "7733:39:16"
                            }
                        ],
                        "id": 6487,
                        "name": "FunctionDefinition",
                        "src": "7666:106:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setCryptoDataURL",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8351,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_url",
                                            "scope": 6509,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6488,
                                                "name": "ElementaryTypeName",
                                                "src": "7806:6:16"
                                            }
                                        ],
                                        "id": 6489,
                                        "name": "VariableDeclaration",
                                        "src": "7806:20:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_fromCurrency",
                                            "scope": 6509,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6490,
                                                "name": "ElementaryTypeName",
                                                "src": "7828:7:16"
                                            }
                                        ],
                                        "id": 6491,
                                        "name": "VariableDeclaration",
                                        "src": "7828:21:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_toCurrency",
                                            "scope": 6509,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6492,
                                                "name": "ElementaryTypeName",
                                                "src": "7851:7:16"
                                            }
                                        ],
                                        "id": 6493,
                                        "name": "VariableDeclaration",
                                        "src": "7851:19:16"
                                    }
                                ],
                                "id": 6494,
                                "name": "ParameterList",
                                "src": "7805:66:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6499,
                                "name": "ParameterList",
                                "src": "7905:0:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 5885,
                                            "type": "modifier (address)",
                                            "value": "onlyManager"
                                        },
                                        "id": 6495,
                                        "name": "Identifier",
                                        "src": "7872:11:16"
                                    },
                                    {
                                        "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": 6496,
                                                "name": "Identifier",
                                                "src": "7884:3:16"
                                            }
                                        ],
                                        "id": 6497,
                                        "name": "MemberAccess",
                                        "src": "7884:10:16"
                                    }
                                ],
                                "id": 6498,
                                "name": "ModifierInvocation",
                                "src": "7872:23:16"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "string storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "string storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(bytes32 => string storage ref)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5787,
                                                                            "type": "mapping(bytes32 => mapping(bytes32 => string storage ref))",
                                                                            "value": "CryptoDataUrl"
                                                                        },
                                                                        "id": 6500,
                                                                        "name": "Identifier",
                                                                        "src": "7916:13:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6491,
                                                                            "type": "bytes32",
                                                                            "value": "_fromCurrency"
                                                                        },
                                                                        "id": 6501,
                                                                        "name": "Identifier",
                                                                        "src": "7930:13:16"
                                                                    }
                                                                ],
                                                                "id": 6503,
                                                                "name": "IndexAccess",
                                                                "src": "7916:28:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6493,
                                                                    "type": "bytes32",
                                                                    "value": "_toCurrency"
                                                                },
                                                                "id": 6502,
                                                                "name": "Identifier",
                                                                "src": "7945:11:16"
                                                            }
                                                        ],
                                                        "id": 6504,
                                                        "name": "IndexAccess",
                                                        "src": "7916:41:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6489,
                                                            "type": "string calldata",
                                                            "value": "_url"
                                                        },
                                                        "id": 6505,
                                                        "name": "Identifier",
                                                        "src": "7960:4:16"
                                                    }
                                                ],
                                                "id": 6506,
                                                "name": "Assignment",
                                                "src": "7916:48:16"
                                            }
                                        ],
                                        "id": 6507,
                                        "name": "ExpressionStatement",
                                        "src": "7916:48:16"
                                    }
                                ],
                                "id": 6508,
                                "name": "Block",
                                "src": "7905:67:16"
                            }
                        ],
                        "id": 6509,
                        "name": "FunctionDefinition",
                        "src": "7780:192:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setOracles",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8373,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_oracles",
                                            "scope": 6522,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 6510,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8000:7:16"
                                                    }
                                                ],
                                                "id": 6511,
                                                "name": "ArrayTypeName",
                                                "src": "8000:9:16"
                                            }
                                        ],
                                        "id": 6512,
                                        "name": "VariableDeclaration",
                                        "src": "8000:27:16"
                                    }
                                ],
                                "id": 6513,
                                "name": "ParameterList",
                                "src": "7999:29:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6516,
                                "name": "ParameterList",
                                "src": "8048:0:16"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 269,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 6514,
                                        "name": "Identifier",
                                        "src": "8029:9:16"
                                    }
                                ],
                                "id": 6515,
                                "name": "ModifierInvocation",
                                "src": "8029:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5790,
                                                            "type": "address[] storage ref",
                                                            "value": "oracles"
                                                        },
                                                        "id": 6517,
                                                        "name": "Identifier",
                                                        "src": "8059:7:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6512,
                                                            "type": "address[] calldata",
                                                            "value": "_oracles"
                                                        },
                                                        "id": 6518,
                                                        "name": "Identifier",
                                                        "src": "8069:8:16"
                                                    }
                                                ],
                                                "id": 6519,
                                                "name": "Assignment",
                                                "src": "8059:18:16"
                                            }
                                        ],
                                        "id": 6520,
                                        "name": "ExpressionStatement",
                                        "src": "8059:18:16"
                                    }
                                ],
                                "id": 6521,
                                "name": "Block",
                                "src": "8048:37:16"
                            }
                        ],
                        "id": 6522,
                        "name": "FunctionDefinition",
                        "src": "7980:105:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "setBondTerm",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8380,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_bondToken",
                                            "scope": 6548,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6523,
                                                "name": "ElementaryTypeName",
                                                "src": "8114:7:16"
                                            }
                                        ],
                                        "id": 6524,
                                        "name": "VariableDeclaration",
                                        "src": "8114:18:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_term",
                                            "scope": 6548,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6525,
                                                "name": "ElementaryTypeName",
                                                "src": "8134:7:16"
                                            }
                                        ],
                                        "id": 6526,
                                        "name": "VariableDeclaration",
                                        "src": "8134:13:16"
                                    }
                                ],
                                "id": 6527,
                                "name": "ParameterList",
                                "src": "8113:35:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6528,
                                "name": "ParameterList",
                                "src": "8158:0:16"
                            },
                            {
                                "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"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_7d0138d89de4c582a2d8d327af85600121a748f37a1184aad78fbd63a64c2cf4",
                                                                    "typeString": "literal_string \"Only issuer can set bond term\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                13010,
                                                                13011
                                                            ],
                                                            "referencedDeclaration": 13011,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6529,
                                                        "name": "Identifier",
                                                        "src": "8169:7:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "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,
                                                                                    "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": 6530,
                                                                                        "name": "Identifier",
                                                                                        "src": "8177:8:16"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6524,
                                                                                            "type": "address",
                                                                                            "value": "_bondToken"
                                                                                        },
                                                                                        "id": 6531,
                                                                                        "name": "Identifier",
                                                                                        "src": "8186:10:16"
                                                                                    }
                                                                                ],
                                                                                "id": 6532,
                                                                                "name": "FunctionCall",
                                                                                "src": "8177:20:16"
                                                                            }
                                                                        ],
                                                                        "id": 6533,
                                                                        "name": "MemberAccess",
                                                                        "src": "8177:30:16"
                                                                    }
                                                                ],
                                                                "id": 6534,
                                                                "name": "FunctionCall",
                                                                "src": "8177:32:16"
                                                            },
                                                            {
                                                                "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": 6535,
                                                                        "name": "Identifier",
                                                                        "src": "8211:3:16"
                                                                    }
                                                                ],
                                                                "id": 6536,
                                                                "name": "MemberAccess",
                                                                "src": "8211:10:16"
                                                            }
                                                        ],
                                                        "id": 6537,
                                                        "name": "BinaryOperation",
                                                        "src": "8177:44:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4f6e6c79206973737565722063616e2073657420626f6e64207465726d",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Only issuer can set bond term\"",
                                                            "value": "Only issuer can set bond term"
                                                        },
                                                        "id": 6538,
                                                        "name": "Literal",
                                                        "src": "8223:31:16"
                                                    }
                                                ],
                                                "id": 6539,
                                                "name": "FunctionCall",
                                                "src": "8169:86:16"
                                            }
                                        ],
                                        "id": 6540,
                                        "name": "ExpressionStatement",
                                        "src": "8169:86:16"
                                    },
                                    {
                                        "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,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5809,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "term"
                                                                },
                                                                "id": 6541,
                                                                "name": "Identifier",
                                                                "src": "8266:4:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6524,
                                                                    "type": "address",
                                                                    "value": "_bondToken"
                                                                },
                                                                "id": 6542,
                                                                "name": "Identifier",
                                                                "src": "8271:10:16"
                                                            }
                                                        ],
                                                        "id": 6543,
                                                        "name": "IndexAccess",
                                                        "src": "8266:16:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6526,
                                                            "type": "uint256",
                                                            "value": "_term"
                                                        },
                                                        "id": 6544,
                                                        "name": "Identifier",
                                                        "src": "8285:5:16"
                                                    }
                                                ],
                                                "id": 6545,
                                                "name": "Assignment",
                                                "src": "8266:24:16"
                                            }
                                        ],
                                        "id": 6546,
                                        "name": "ExpressionStatement",
                                        "src": "8266:24:16"
                                    }
                                ],
                                "id": 6547,
                                "name": "Block",
                                "src": "8158:140:16"
                            }
                        ],
                        "id": 6548,
                        "name": "FunctionDefinition",
                        "src": "8093:205:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setClientAddress",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8356,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_client",
                                            "scope": 6560,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6549,
                                                "name": "ElementaryTypeName",
                                                "src": "8332:7:16"
                                            }
                                        ],
                                        "id": 6550,
                                        "name": "VariableDeclaration",
                                        "src": "8332:15:16"
                                    }
                                ],
                                "id": 6551,
                                "name": "ParameterList",
                                "src": "8331:17:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6554,
                                "name": "ParameterList",
                                "src": "8368:0:16"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 269,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 6552,
                                        "name": "Identifier",
                                        "src": "8349:9:16"
                                    }
                                ],
                                "id": 6553,
                                "name": "ModifierInvocation",
                                "src": "8349:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5792,
                                                            "type": "address",
                                                            "value": "client"
                                                        },
                                                        "id": 6555,
                                                        "name": "Identifier",
                                                        "src": "8379:6:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6550,
                                                            "type": "address",
                                                            "value": "_client"
                                                        },
                                                        "id": 6556,
                                                        "name": "Identifier",
                                                        "src": "8388:7:16"
                                                    }
                                                ],
                                                "id": 6557,
                                                "name": "Assignment",
                                                "src": "8379:16:16"
                                            }
                                        ],
                                        "id": 6558,
                                        "name": "ExpressionStatement",
                                        "src": "8379:16:16"
                                    }
                                ],
                                "id": 6559,
                                "name": "Block",
                                "src": "8368:35:16"
                            }
                        ],
                        "id": 6560,
                        "name": "FunctionDefinition",
                        "src": "8306:97:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "supportTokens",
                            "scope": 6629,
                            "stateMutability": "nonpayable",
                            "superFunction": 8387,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_currency",
                                            "scope": 6598,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6561,
                                                "name": "ElementaryTypeName",
                                                "src": "8434:7:16"
                                            }
                                        ],
                                        "id": 6562,
                                        "name": "VariableDeclaration",
                                        "src": "8434:17:16"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_address",
                                            "scope": 6598,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6563,
                                                "name": "ElementaryTypeName",
                                                "src": "8453:7:16"
                                            }
                                        ],
                                        "id": 6564,
                                        "name": "VariableDeclaration",
                                        "src": "8453:16:16"
                                    }
                                ],
                                "id": 6565,
                                "name": "ParameterList",
                                "src": "8433:37:16"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6570,
                                "name": "ParameterList",
                                "src": "8504:0:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 5885,
                                            "type": "modifier (address)",
                                            "value": "onlyManager"
                                        },
                                        "id": 6566,
                                        "name": "Identifier",
                                        "src": "8471:11:16"
                                    },
                                    {
                                        "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": 6567,
                                                "name": "Identifier",
                                                "src": "8483:3:16"
                                            }
                                        ],
                                        "id": 6568,
                                        "name": "MemberAccess",
                                        "src": "8483:10:16"
                                    }
                                ],
                                "id": 6569,
                                "name": "ModifierInvocation",
                                "src": "8471:23:16"
                            },
                            {
                                "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,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5816,
                                                                    "type": "mapping(bytes32 => uint256)",
                                                                    "value": "currencyIndex"
                                                                },
                                                                "id": 6571,
                                                                "name": "Identifier",
                                                                "src": "8518:13:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6562,
                                                                    "type": "bytes32",
                                                                    "value": "_currency"
                                                                },
                                                                "id": 6572,
                                                                "name": "Identifier",
                                                                "src": "8532:9:16"
                                                            }
                                                        ],
                                                        "id": 6573,
                                                        "name": "IndexAccess",
                                                        "src": "8518:24:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 6574,
                                                        "name": "Literal",
                                                        "src": "8544:1:16"
                                                    }
                                                ],
                                                "id": 6575,
                                                "name": "BinaryOperation",
                                                "src": "8518:27:16"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "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_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (bytes32) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5812,
                                                                                    "type": "bytes32[] storage ref",
                                                                                    "value": "currencies"
                                                                                },
                                                                                "id": 6576,
                                                                                "name": "Identifier",
                                                                                "src": "8561:10:16"
                                                                            }
                                                                        ],
                                                                        "id": 6578,
                                                                        "name": "MemberAccess",
                                                                        "src": "8561:15:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6562,
                                                                            "type": "bytes32",
                                                                            "value": "_currency"
                                                                        },
                                                                        "id": 6579,
                                                                        "name": "Identifier",
                                                                        "src": "8577:9:16"
                                                                    }
                                                                ],
                                                                "id": 6580,
                                                                "name": "FunctionCall",
                                                                "src": "8561:26:16"
                                                            }
                                                        ],
                                                        "id": 6581,
                                                        "name": "ExpressionStatement",
                                                        "src": "8561:26:16"
                                                    },
                                                    {
                                                        "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,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5816,
                                                                                    "type": "mapping(bytes32 => uint256)",
                                                                                    "value": "currencyIndex"
                                                                                },
                                                                                "id": 6582,
                                                                                "name": "Identifier",
                                                                                "src": "8602:13:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6562,
                                                                                    "type": "bytes32",
                                                                                    "value": "_currency"
                                                                                },
                                                                                "id": 6583,
                                                                                "name": "Identifier",
                                                                                "src": "8616:9:16"
                                                                            }
                                                                        ],
                                                                        "id": 6584,
                                                                        "name": "IndexAccess",
                                                                        "src": "8602:24:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5812,
                                                                                    "type": "bytes32[] storage ref",
                                                                                    "value": "currencies"
                                                                                },
                                                                                "id": 6585,
                                                                                "name": "Identifier",
                                                                                "src": "8629:10:16"
                                                                            }
                                                                        ],
                                                                        "id": 6586,
                                                                        "name": "MemberAccess",
                                                                        "src": "8629:17:16"
                                                                    }
                                                                ],
                                                                "id": 6587,
                                                                "name": "Assignment",
                                                                "src": "8602:44:16"
                                                            }
                                                        ],
                                                        "id": 6588,
                                                        "name": "ExpressionStatement",
                                                        "src": "8602:44:16"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5820,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "currencyAddress"
                                                                                },
                                                                                "id": 6589,
                                                                                "name": "Identifier",
                                                                                "src": "8661:15:16"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6562,
                                                                                    "type": "bytes32",
                                                                                    "value": "_currency"
                                                                                },
                                                                                "id": 6590,
                                                                                "name": "Identifier",
                                                                                "src": "8677:9:16"
                                                                            }
                                                                        ],
                                                                        "id": 6591,
                                                                        "name": "IndexAccess",
                                                                        "src": "8661:26:16"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6564,
                                                                            "type": "address",
                                                                            "value": "_address"
                                                                        },
                                                                        "id": 6592,
                                                                        "name": "Identifier",
                                                                        "src": "8690:8:16"
                                                                    }
                                                                ],
                                                                "id": 6593,
                                                                "name": "Assignment",
                                                                "src": "8661:37:16"
                                                            }
                                                        ],
                                                        "id": 6594,
                                                        "name": "ExpressionStatement",
                                                        "src": "8661:37:16"
                                                    }
                                                ],
                                                "id": 6595,
                                                "name": "Block",
                                                "src": "8546:164:16"
                                            }
                                        ],
                                        "id": 6596,
                                        "name": "IfStatement",
                                        "src": "8515:195:16"
                                    }
                                ],
                                "id": 6597,
                                "name": "Block",
                                "src": "8504:213:16"
                            }
                        ],
                        "id": 6598,
                        "name": "FunctionDefinition",
                        "src": "8411:306:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "checkSupportForToken",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8394,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_currency",
                                            "scope": 6616,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6599,
                                                "name": "ElementaryTypeName",
                                                "src": "8755:7:16"
                                            }
                                        ],
                                        "id": 6600,
                                        "name": "VariableDeclaration",
                                        "src": "8755:17:16"
                                    }
                                ],
                                "id": 6601,
                                "name": "ParameterList",
                                "src": "8754:19:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6616,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 6602,
                                                "name": "ElementaryTypeName",
                                                "src": "8796:4:16"
                                            }
                                        ],
                                        "id": 6603,
                                        "name": "VariableDeclaration",
                                        "src": "8796:4:16"
                                    }
                                ],
                                "id": 6604,
                                "name": "ParameterList",
                                "src": "8795:6:16"
                            },
                            {
                                "children": [
                                    {
                                        "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,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5816,
                                                                    "type": "mapping(bytes32 => uint256)",
                                                                    "value": "currencyIndex"
                                                                },
                                                                "id": 6605,
                                                                "name": "Identifier",
                                                                "src": "8815:13:16"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6600,
                                                                    "type": "bytes32",
                                                                    "value": "_currency"
                                                                },
                                                                "id": 6606,
                                                                "name": "Identifier",
                                                                "src": "8829:9:16"
                                                            }
                                                        ],
                                                        "id": 6607,
                                                        "name": "IndexAccess",
                                                        "src": "8815:24:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 6608,
                                                        "name": "Literal",
                                                        "src": "8840:1:16"
                                                    }
                                                ],
                                                "id": 6609,
                                                "name": "BinaryOperation",
                                                "src": "8815:26:16"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 6604
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 6610,
                                                        "name": "Literal",
                                                        "src": "8863:4:16"
                                                    }
                                                ],
                                                "id": 6611,
                                                "name": "Return",
                                                "src": "8856:11:16"
                                            },
                                            {
                                                "attributes": {
                                                    "functionReturnParameters": 6604
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 6612,
                                                        "name": "Literal",
                                                        "src": "8903:5:16"
                                                    }
                                                ],
                                                "id": 6613,
                                                "name": "Return",
                                                "src": "8896:12:16"
                                            }
                                        ],
                                        "id": 6614,
                                        "name": "IfStatement",
                                        "src": "8812:96:16"
                                    }
                                ],
                                "id": 6615,
                                "name": "Block",
                                "src": "8801:115:16"
                            }
                        ],
                        "id": 6616,
                        "name": "FunctionDefinition",
                        "src": "8725:191:16"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getCurrencyToken",
                            "scope": 6629,
                            "stateMutability": "view",
                            "superFunction": 8401,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_currency",
                                            "scope": 6628,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6617,
                                                "name": "ElementaryTypeName",
                                                "src": "8950:7:16"
                                            }
                                        ],
                                        "id": 6618,
                                        "name": "VariableDeclaration",
                                        "src": "8950:17:16"
                                    }
                                ],
                                "id": 6619,
                                "name": "ParameterList",
                                "src": "8949:19:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 6628,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6620,
                                                "name": "ElementaryTypeName",
                                                "src": "8991:7:16"
                                            }
                                        ],
                                        "id": 6621,
                                        "name": "VariableDeclaration",
                                        "src": "8991:7:16"
                                    }
                                ],
                                "id": 6622,
                                "name": "ParameterList",
                                "src": "8990:9:16"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 6622
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5820,
                                                            "type": "mapping(bytes32 => address)",
                                                            "value": "currencyAddress"
                                                        },
                                                        "id": 6623,
                                                        "name": "Identifier",
                                                        "src": "9017:15:16"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6618,
                                                            "type": "bytes32",
                                                            "value": "_currency"
                                                        },
                                                        "id": 6624,
                                                        "name": "Identifier",
                                                        "src": "9033:9:16"
                                                    }
                                                ],
                                                "id": 6625,
                                                "name": "IndexAccess",
                                                "src": "9017:26:16"
                                            }
                                        ],
                                        "id": 6626,
                                        "name": "Return",
                                        "src": "9010:33:16"
                                    }
                                ],
                                "id": 6627,
                                "name": "Block",
                                "src": "8999:52:16"
                            }
                        ],
                        "id": 6628,
                        "name": "FunctionDefinition",
                        "src": "8924:127:16"
                    }
                ],
                "id": 6629,
                "name": "ContractDefinition",
                "src": "483:8573:16"
            }
        ],
        "id": 6630,
        "name": "SourceUnit",
        "src": "114:8956:16"
    },
    "compiler": {
        "name": "solc",
        "version": "0.5.7+commit.6da8b019.Emscripten.clang"
    },
    "networks": {
        "11155111": {
            "events": {
                "0x49c2bdad6020b81dabafa7be5ba1d6b64dccc883841d724393e4a0242819bc34": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "tokenName",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "tokenType",
                            "type": "bytes32"
                        }
                    ],
                    "name": "CashIssuerCreated",
                    "type": "event"
                },
                "0xdaec82b39e03602f1e7b1c03805276c348a0b9c50d3e83d4ae136f2bbb74137f": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "tokenName",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "tokenType",
                            "type": "bytes32"
                        }
                    ],
                    "name": "BondIssuerCreated",
                    "type": "event"
                },
                "0x59bcd02033e203f8af464062ce742d11a3358b7b8fd7e996b91d74bee929d7e5": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "token",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "tokenName",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "name": "tokenType",
                            "type": "bytes32"
                        }
                    ],
                    "name": "TokenCreated",
                    "type": "event"
                },
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x00fffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e7349": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "name": "proxy",
                            "type": "address"
                        }
                    ],
                    "name": "ProxyCreated",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x358643DA31fdE65b15839EeC0C72f3dacD07EBeD",
            "transactionHash": "0xdfc5691a1b338c4e276cdef075b9f7c41d41e3193d34ba67e7f22e0af95eae2e"
        }
    },
    "schemaVersion": "3.4.16",
    "updatedAt": "2025-07-26T12:25:15.289Z",
    "networkType": "ethereum",
    "devdoc": {
        "methods": {
            "initialize(address)": {
                "details": "Initializes the contract setting the deployer as the initial owner."
            },
            "isOwner()": {
                "details": "Returns true if the caller is the current owner."
            },
            "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."
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            }
        }
    },
    "userdoc": {
        "methods": {}
    }
}
